c# - 如何使用 ajax 将 id 传递给部分视图控制器方法?
问题描述
我正在尝试使用这段 jQuery 刷新部分视图:
$(function () {
setInterval(RefreshAgenda, 3000);
});
function RefreshAgenda() {
var data = {"id":"@Model.Id"};
$.ajax({
type: "POST",
url: "/Meetings/AgendaPartial",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (response) {
$('#_Agenda').html(response);
}
});
}
控制器方法:
[HttpPost]
public async Task<IActionResult> AgendaPartial(string id)
{
if (id == null) return NotFound();
if (!Guid.TryParse(id, out Guid parsedId)) return NotFound();
Meeting meeting = await db.Meetings
.Include(a => a.Agenda)
.Where(m => m.Id == parsedId).FirstOrDefaultAsync();
return PartialView("_Agenda", auto.Map<MeetingViewModel>(meeting));
}
@Model.Id
包含一个有效的id
,但是当我们到达方法时,id
= null
,并返回 404,如方法所指示的那样。
如果我尝试通过键入 /Meetings/AgendaPartial/{id} 直接访问该方法,则部分视图将成功返回。
如何更改脚本以成功发送id
到控制器方法?
解决方案
发布此问题后,我偶然发现了另一种方法:
function RefreshAgenda() {
var data = { id: "@Model.Id.ToString()" };
$.post('/Meetings/AgendaPartial', data,
function (response) {
$('#_Agenda').html(response);
});
}
现在它起作用了!:)
推荐阅读
- javascript - 显示:无数据量小于20000
- python - 无法在我的项目的 centos 7 上成功编译 cython 代码
- python - 有人可以在这里帮助我。我正在尝试根据 django DRF 中的角色名称为单个用户分配多个规则
- rust - 如何在 Rust 线程中使用克隆
- python-3.x - DL 模型未绘制精度和损失
- asp.net-mvc - VS2019 ASP.NET(MVC) - 如何仅使用电子邮件和密码登录
- r - 我在使用 Shiny dashboardSidebar 时遇到问题
- reactjs - 在 typescript 中扩展 material-ui 组件
- python - 从名称 str 获取 python typing.Type
- python - Django restful 框架“序列化器字段可能命名不正确”