我遇到了ajax.actionlink
我的代码是:
@Ajax.ActionLink("Delete", "DeleteCategory", new { id = item.ID }, new AjaxOptions
{
HttpMethod = "POST",
OnFailure = "function() { alert('fail'); }",
OnSuccess = "function() { alert('success'); }"
})
,控制器是
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult DeleteCategory(int id)
{
categoryBLL.DeleteCategory(id);
return RedirectToAction("CreateCategory");
}
但由于某些原因我不能让它工作,它不会被触发......
它只会重定向到/DeleteCategory/Delete/{id}
而不只是张贴到控制器,然后执行它..
我在这里做错了什么?
答案 0 :(得分:0)
首先添加对 MicrosoftMvcAjax.Mvc5 包的引用,然后将js添加到您的页面:
和js引用:
<script src="~/Scripts/MicrosoftAjax.js"></script>
<script src="~/Scripts/MicrosoftMvcAjax.js"></script>
另外,当你将@ajax.actionlink与HTTP Post一起使用时存在一些问题,并且得到了所有的罚款,得到:
@Ajax.ActionLink("Read", "Read", new { id = 1 }, new AjaxOptions
{
HttpMethod = "Get",
OnFailure = "function() { alert('fail'); }",
OnSuccess = "function() { alert('success'); }"
})
[HttpGet]
public ActionResult Read(int id)
{
return RedirectToAction("CreateCategory");
}
但是,对于POST,请使用帮助器:@Ajax.BeginForm()
或类似jQuery的库。
答案 1 :(得分:0)
谢谢Stephen Muecke。
问题出现在我的脚本顺序中.. <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
并且。感谢你们的帮助。