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 ?

注::我只想使用内置方法

HttpMethod=DELETE的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",