在Html.BeginForm()中使用DELETE表单方法?

Jos*_* M. 8 http-method razor asp.net-mvc-3 http-delete

我想尽可能使用适当的HTTP方法.在这种情况下,当单击按钮删除某些内容时,我想使用该属性触发控制器操作[HttpDelete].但是,我似乎无法使用此方法创建表单 - 使用Razor语法.该FormMethod枚举没有一个选项Delete并执行以下操作不会覆盖它:

@using (Html.BeginForm("Order", "Users", FormMethod.Post, new { method = "DELETE" }))
Run Code Online (Sandbox Code Playgroud)

搜索解决方案没有产生,没有人这样做吗?我知道我可以使用POST,但这不是HTTP删除方法的重点吗?

JoJ*_*oJa 22

你需要在你的表格中:

@using (Html.BeginForm("Order", "Users"){ 
   @Html.HttpMethodOverride(HttpVerbs.Delete)
}
Run Code Online (Sandbox Code Playgroud)

  • 额外信息:HTML规范不允许"get"或"post"作为表单的方法,因此MVC必须检查HttpMethodOverride创建的隐藏输入,然后假设已发送此动词. (3认同)