首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用哪个:"AcceptGet,AcceptPost"(MvcContrib)与AcceptVerbs(ASP.NET Mvc)?

使用哪个:"AcceptGet,AcceptPost"(MvcContrib)与AcceptVerbs(ASP.NET Mvc)?
EN

Stack Overflow用户
提问于 2009-05-03 06:22:21
回答 2查看 3.7K关注 0票数 4

在ASP.NET中,MVC控制器方法可以被修饰以接受特定的HTTP方法(Get,Post,Get.等)。在MvcContrib和ASP.NET MVC之间有三个类:"AcceptGet,AcceptPost“和AcceptVerbs。这三者都是:"AcceptGet,AcceptPost“和AcceptVerbs做同样的事情。它们指定允许何种http方法访问操作/方法。

AcceptGet和AcceptPost在MvcContrib。而AcceptVerbs是Mvc框架的原生版本。哪一种更好用?

AcceptGet/AcceptPost (MvcContrib)

代码语言:javascript
复制
/// <returns></returns>
[AcceptGet]
public ActionResult Profile(string id)

AcceptVerbs(ASP.NET Mvc)

代码语言:javascript
复制
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)

MvcContrib项目的AcceptPost文档可以找到这里

AcceptGet和AcceptPost的创建似乎是为了填补ASP.NET Mvc框架早期版本中的一个空白。AcceptGet和AcceptPost类提供了一个强类型的HttpMethod属性。

ASP.NET MVC与AcceptVerbs一起发布,它采用了一个enum:

代码语言:javascript
复制
[Flags]
public enum HttpVerbs
{
    Delete = 8,
    Get = 1,
    Head = 0x10,
    Post = 2,
    Put = 4
}

我的问题是哪一个是更好的实现,AcceptGet/AcceptPost还是AcceptVerbs(带有HttpVerbs枚举类型)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-03 11:04:34

我不认为这两种实现有很大区别,但考虑到这一点

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)

现在是框架的一部分,我一直使用这个。这两种类型都是强类型的,因此没有真正的区别,而且HttpVerbs枚举包括删除、Head和Put,它们不在MVC控制版本中。

票数 5
EN

Stack Overflow用户

发布于 2010-01-07 12:10:57

在ASP.Net MVC 2预览1版本中,核心MVC框架中有以下属性-- HttpPost、HttpGet、HttpDelete、HttpPut。当然,仍然支持AcceptVerbs属性。

因此,如果您使用的是MVC 2,那么您可以使用这些新的属性,而不需要AcceptPost和AcceptGet的MVC控制版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/816456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档