如何使用 ajax 将 id 传递给部分视图控制器方法?
Posted
技术标签:
【中文标题】如何使用 ajax 将 id 传递给部分视图控制器方法?【英文标题】:How can I pass an id to a partial view controller method using ajax? 【发布时间】:2021-09-16 10:12:12 【问题描述】:我正在尝试用这段 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
发送到控制器方法?
【问题讨论】:
【参考方案1】:发布此问题后,我偶然发现了另一种方法:
function RefreshAgenda()
var data = id: "@Model.Id.ToString()" ;
$.post('/Meetings/AgendaPartial', data,
function (response)
$('#_Agenda').html(response);
);
现在可以了! :)
【讨论】:
以上是关于如何使用 ajax 将 id 传递给部分视图控制器方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?