我尝试为我的mvc-application实现DELETE方法。
我的链接放在了视图中:
@Ajax.ActionLink("Delete", "Delete", "Users", new { userId = user.Id }, new AjaxOptions { HttpMethod = "DELETE" })
有我的控制器方法:
[HttpDelete]
public ActionResult Delete(string userId)
{
//...
return View("Index");
}
当我点击删除链接时,我收到404错误。
在Fiddler我看到,我的请求是通过GET方法完成的! 如果我使用来自Fiddler的相同Headers执行DELETE请求,我会得到预期的结果 - 我的请求正在进入Delete方法。
如何正确使用@Ajax.ActionLink
?
P.S。:我只想使用内置方法。
答案 0 :(得分:2)
您确定所有Unobtrusive库都已加载吗? @Ajax.ActionLink
生成标准锚标记。如果没有加载JavaScript库来处理点击事件,您将获得您在Fiddler中看到的GET请求。
检查jquery.unobtrusive-ajax.js
脚本是否包含在从布局页面引用的包中,或者您是否在脚本区域中的特定页面上显式加载它。
答案 1 :(得分:0)
试试这个:
@Ajax.ActionLink("Delete", "Delete", "Users",
new { userId = user.Id },
new AjaxOptions { HttpMethod = "POST" })
我不确定您为什么使用'删除'作为HTTPMethod。 Post会将您要删除的数据的Id发送到服务器,并调用此处指定的“删除”ActionResult @Ajax.ActionLink("Delete", "Delete", "Users",
。