我在ASP.NET MVC中有一个如下所示的链接:
@Ajax.ActionLink("Delete", "Delete", new { id = item.Id }, new AjaxOptions { HttpMethod = "DELETE" })
然而,当我点击它时,它的行为类似于GET链接,而Chrome调试器则说:GET http://localhost:22148/CreditCards/Delete/2001 404 (Not Found)
剃刀模板生成的html是
<a data-ajax="true" data-ajax-method="DELETE" href="/CreditCards/Delete/2001">Delete</a>
似乎是使用html5来表明它应该是一个删除调用。如何进行删除调用?
答案 0 :(得分:1)
处理data-ajax
和data-ajax-method
属性的javascript包是The microsoft unobtrusive ajax package for jquery。要启用它,您需要执行以下操作。
首先从包管理器控制台安装带有Install-Package Microsoft.jQuery.Unobtrusive.Ajax
的nuget包。
然后将这个包添加到RegisterBundleCollection()
中的App_Start/BundleConfig.cs
,如下所示:
bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include(
"~/Scripts/jquery.unobtrusive-ajax*"));
最后,包括此包和jquery包_Layout.cshtml:
dd Scripts.Render("~/bundles/jquery")
dd Scripts.Render("~/bundles/jqueryajax")
虽然jquery作为带有ASP.NET MVC包的nuget包包含在内,但默认情况下它不包含在视图中
此时,您的Action链接将执行DELETE而不是GET。