【问题标题】:asp.net mvc - [HttpPost/HttpGet] vs. [AcceptVerbs(HttpVerbs.Post/Get)]asp.net mvc - [HttpPost/HttpGet] 与 [AcceptVerbs(HttpVerbs.Post/Get)]
【发布时间】:2011-01-20 08:43:56
【问题描述】:

这些东西都一样吗?

[HttpPost/HttpGet] vs. [AcceptVerbs(HttpVerbs.Post/Get)]

如果没有区别在哪里?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    是的,完全一样。 [HttpPost/HttpGet] 是在 ASP.NET MVC 2 中引入的,以减少我们必须键入的击键 :-) [AcceptVerbs(HttpVerbs.Post/Get)] 仍然可以使用并且行为相同,但如果您正在编写新代码,我会推荐第一个。

    【讨论】:

      【解决方案2】:

      是的,它们是相同的,但是在较新的版本中,您只能使动作接受来自一个动词的请求。使用 [AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get | HttpVerbs.Delete)] 您可以接受 2 个或更多。您也可以使用 [AcceptVerbs] 接受不属于 HttpVerbs 枚举的其他动词 - 例如。 [AcceptVerbs("Trace")].

      我不确定您为什么需要使用此功能,但您可以根据需要使用。

      【讨论】:

      • 我自己正在处理一个原因——我刚刚发现了一个只接受 POST 动词的更新端点。为了将其切换为 PUT,我必须在几次构建中同时接受这两个动词,直到所有客户端都更新完毕。
      • +1 for 您可以使用[AcceptVerbs] 来接受不属于 HttpVerbs 枚举的其他动词 - 例如。 [AcceptVerbs("Trace")]
      猜你喜欢
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多