从Java到ASP.NET,过渡到接口发布上层,HTTP请求方式不外乎那么几种:GET、POST、PUT、DELETE等这些都是标准。在ASP.NET中因MVC版本差异而出现了不同的写法,下面我们就来看一看。
AcceptVerbsAttribute 类
显示: 继承 保护
名称 | 说明 | |
---|---|---|
![]() | AcceptVerbsAttribute(String[]) | 使用操作方法将响应的 HTTP 谓词的列表来初始化 AcceptVerbsAttribute 类的新实例。 |
![]() | AcceptVerbsAttribute(HttpVerbs) | 使用操作方法将响应的 HTTP 谓词来初始化 AcceptVerbsAttribute 类的新实例。 |
注:属性支持字符串的请求标记类型和HttpVerbs的枚举类型。
HttpVerbs 枚举
成员名称 | 说明 | |
---|---|---|
Get | 检索由请求的 URI 标识的信息或实体。 | |
Post | 发布新实体作为对 URI 的补充。 | |
Put | 替换由 URI 标识的实体。 | |
Delete | 请求删除指定的 URI。 | |
Head | 检索由请求的 URI 标识的信息或实体的消息头。 | |
Patch | 请求将请求实体中描述的一组更改应用于请求 URI 所标识的资源。 | |
Options | 表示由请求 URI 标识的请求/响应链上提供的通信选项的相关信息请求。 |
MVC2.0+与之前API请求方式的区别
请参考:
System.Web.Http.AcceptVerbs(“GET”) vs System.Web.Http.HttpGet
What is the difference between [AcceptVerbs(HttpVerbs.Post)] and [HttpPost]?
asp.net mvc - [HttpPost/HttpGet] vs. [AcceptVerbs(HttpVerbs.Post/Get)]
示例程序:
[AcceptVerbs("GET","POST")]
public IHttpActionResult Login([FromUriOrBody]LoginModel login)
{
return Ok(login);
}
mvc2.0+以上版本:
[HttpGet]
[HttpPost]
public string Login([FromUriOrBody]LoginModel login)
{
return Ok(login);
}
所以,不必在此纠结写法的问题,他们只是版本不同造成的写法不一样而已。