首页 > 代码库 > [HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别
[HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别
1.共同点:[HttpPost]和[AcceptVerbs(HttpVerbs.Post)]都是只接受POST请求过来的数据。
2.不同点:
在MVC中如果想一个action既可以回应POST请求也可以回应GET请求那么我们应该怎么做呢?
首先[HttpPost]和[HttpGet]是不能同时存在一个action上
但是[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]可以
正确写法:
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]或者[AcceptVerbs("POST", "GET"、"OPTIONS")]
public ActionResult Index()
{
........................
}
错误写法:
[HttpPost][HttpGet]
public ActionResult Index()
{
........................
}
!!!注:
HTTP规范定义了8种可能的请求方法:
GET 检索URI中标识资源的一个简单请求
HEAD 与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST 服务器接受被写入客户端输出流中的数据的请求
PUT 服务器保存请求数据作为指定URI新内容的请求
DELETE 服务器删除URI中命名的资源的请求
OPTIONS 关于服务器支持的请求方法信息的请求
TRACE Web服务器反馈Http请求和其头标的请求
CONNECT 已文档化但当前未实现的一个方法,预留做隧道处理
[HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别