Ajax.ActionLink没有发布

时间:2015-08-21 16:35:18

标签: jquery ajax asp.net-mvc-5

我遇到了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}

而不只是张贴到控制器,然后执行它..

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

首先添加对 MicrosoftMvcAjax.Mvc5 包的引用,然后将js添加到您的页面:

Nuget Package MicrosoftMvcAjax

和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>

并且。感谢你们的帮助。