我正在尝试创建一个将 Model.Id 发送到控制器的 Ajax POST 链接:
@Ajax.ActionLink("Reply", "Reply", new { MessageId = m.Id },
new AjaxOptions() {
HttpMethod = "POST",
UpdateTargetId = "send",
InsertionMode = InsertionMode.Replace,
})
这将在浏览器中生成以下 HTML:
<a data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#send" href="/Messages/Reply?MessageId=12">Reply</a>
为了完整起见,这是控制器的代码:
[HttpPost]
public ActionResult Reply(int MessageId) {
var MV = new MessageViewModel {
ToUser = db.Users.Find(MessageId).Name,
};
if (Request.IsAjaxRequest()) {
return PartialView("_SendMessagePartial", MV);
} else {
return View("Index", GetCurrentMessages());
}
}
但它仍在执行 GET 请求。我正在使用 MVC4,并且jQuery v1.9.1和jquery.unobtrusive-ajax.js都以正确的顺序加载。我也没有收到任何 Javascript 错误。我无法弄清楚我做错了什么。我怎样才能让这个 POST 请求工作?