【发布时间】:2011-10-28 02:14:32
【问题描述】:
我正在处理这个 ASP.NET MVC 问题,即使用 ValidateAntiForgeryToken 和 AJAX 会破坏 AJAX 调用 (Using ValidateAntiForgeryToken with Ajax.ActionLink)。唯一的解决方案(如该主题所述)需要 jQuery。
如何使用 jQuery 的 .post 方法完成以下等效操作?
@Ajax.ActionLink("Perform HTTPPost", "PostTest", new AjaxOptions{ HttpMethod="POST"})
这里是控制器:
// [ValidateAntiForgeryToken]
public class MoreInfoController : Controller
{
[HttpPost]
public ActionResult PostTest()
{
return View();
}
}
这是包含 Javascript 和 HTML 的索引视图:
<script type="text/javascript">
$(document).ready(function () {
$('#linkToPost').click(PostForm);
});
function PostForm() {
$.post("/PostTest", $('#testForm').serialize(), function(data) {
});
return false;
}
</script>
<a id="linkToPost" href="#">Perform HTTP Post</a>
<form id="testForm" method="POST" >
@Html.AntiForgeryToken()
</form>
这是路线:
routes.MapRoute("PostTest1",
"PostTest",
new {controller = "MoreInfo", action = "PostTest"}
);
【问题讨论】:
标签: jquery asp.net-mvc ajax