如何使用ASP.NET MVC中的HttpDelete属性传递防伪标记一个动作方法?

wgp*_*ubs 3 asp.net-mvc asp.net-mvc-2

这甚至可能吗?

代码看起来像这样......

[Transaction]
[ValidateAntiForgeryToken]
[HttpDelete]
public ActionResult Delete(int id) { ...}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

您可以将以下帮助器添加到窗体:

<%= Html.HttpMethodOverride(HttpVerbs.Delete) %>
Run Code Online (Sandbox Code Playgroud)

这将包括一个隐藏字段,它将指示框架调用适当的控制器操作.现在有两种可能性:

  1. 普通的html表单提交:只支持POST,所以这将是使用的但是由于隐藏的字段,将调用适当的控制器操作
  2. AJAX:您可以使用任何您想要的动词,包括DELETE来序列化表单输入值并发送它们 - 这里没问题.