HttpMethod=DELETE的ActionLink不能工作
本文关键字:不能 工作 ActionLink DELETE HttpMethod | 更新日期: 2023-09-27 17:50:17
我尝试为我的mvc应用程序实现DELETE方法。
有我的链接放置在视图:
@Ajax.ActionLink("Delete", "Delete", "Users", new { userId = user.Id }, new AjaxOptions { HttpMethod = "DELETE" })
这是我的控制器方法:
[HttpDelete]
public ActionResult Delete(string userId)
{
//...
return View("Index");
}
当我点击Delete-link时,我得到一个404错误。
在提琴我看到,我的请求由GET方法执行!如果我使用来自Fiddler的相同头文件执行DELETE请求,我将得到预期的结果-我的请求将直接进入DELETE方法。
如何正确使用@Ajax.ActionLink
?
注::我只想使用内置方法
您确定加载了所有的Unobtrusive库吗?@Ajax.ActionLink
生成标准锚标记。如果没有加载JavaScript库来处理click事件,您将得到您在Fiddler中看到的get请求。
检查jquery.unobtrusive-ajax.js
脚本是否包含在从您的布局页面引用的包中,或者您在脚本区域的特定页面上显式加载它
试试这个:
@Ajax.ActionLink("Delete", "Delete", "Users",
new { userId = user.Id },
new AjaxOptions { HttpMethod = "POST" })
我不知道为什么你使用"删除"的HTTPMethod。Post将发送您想要删除到服务器的数据的Id,并调用这里指定的"Delete"ActionResult @Ajax.ActionLink("Delete", "Delete", "Users",
。