在ASP.NET MVC中,控制器方法可以被装饰为接受特定的HTTP方法(Get,Post,Get等).在MvcContrib和ASP.NET MVC之间有3个类:"AcceptGet,AcceptPost"和AcceptVerbs.全部三个:"AcceptGet,AcceptPost"和AcceptVerbs做同样的事情.它们指定允许访问操作/方法的http方法.
AcceptGet和AcceptPost在MvcContrib中.虽然AcceptVerbs是Mvc框架的原生.哪个更好用?
AcceptGet/AcceptPost(MvcContrib)
/// <returns></returns>
[AcceptGet]
public ActionResult Profile(string id)
Run Code Online (Sandbox Code Playgroud)
AcceptVerbs(ASP.NET Mvc)
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)
Run Code Online (Sandbox Code Playgroud)
可以在此处找到MvcContrib项目的AcceptPost的文档.
它似乎创建了AcceptGet和AcceptPost,以填补ASP.NET Mvc框架早期版本之一的空白.AcceptGet和AcceptPost类提供了强类型的HttpMethod属性.
使用AcceptVerbs发布的ASP.NET MVC采用枚举:
[Flags]
public enum HttpVerbs
{
Delete = 8,
Get = 1,
Head = 0x10,
Post = 2,
Put = 4
}
Run Code Online (Sandbox Code Playgroud)
我的问题是哪一个是更好的实现,AcceptGet/AcceptPost或AcceptVerbs(使用HttpVerbs枚举类型)?
我不认为两种实现之间存在很大差异,但考虑到这一点
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)
Run Code Online (Sandbox Code Playgroud)
现在是框架的一部分,我总是使用它.两者都是强类型的,因此没有真正的区别,并且HttpVerbs枚举包括不在MVC贡献版本中的Delete,Head和Put.
| 归档时间: |
|
| 查看次数: |
3718 次 |
| 最近记录: |