[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        已文档化但当前未实现的一个方法,预留做隧道处理

时间: 2024-12-23 06:58:07

[HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别的相关文章

ASP.NET Action的[HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别

1.共同点: [HttpPost]和[AcceptVerbs(HttpVerbs.Post)]都是只接受POST请求过来的数据. 2.不同点:如果想一个action既可以回应POST请求也可以回应GET请求需要用到AcceptVerbs因为[HttpPost]和[HttpGet]不能同时存在一个action上,这个时候需要用到[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]. 正确写法:[AcceptVerbs(HttpVerbs.Get | HttpV

Asp.Net MVC HttpPost用法

一个Action只能用一个http 特性,例如:HttpPost 不能与HttpGet 或者多个HttpPost重复使用,否则会出错 也可以用 [AcceptVerbs("put","get","post")]来表示一个Action可以共用多个请求.只要是包含了这个请求的,都可以调用此Action HttpPost 等可以和 AcceptVerbs 特性共用 比如: [HttpPost] [AcceptVerbs("put",

ASP.NET MVC HttpVerbs.Delete/Put Routes not firing

原文地址: https://weblog.west-wind.com/posts/2015/Apr/09/ASPNET-MVC-HttpVerbsDeletePut-Routes-not-firing?utm_source=tuicool&utm_medium=referral 国内:http://www.tuicool.com/articles/Zv2EbmY A few times in the last weeks I’ve run into a problem where I found

MVC4 Model ControllerDescriptor

1. ControllerDescriptor 的描述 Controller  的Action 方法有以下一些特性: 1.1 ActionNameAttribute特性  他继承自 System.Web.Mvc.ActionNameSelectorAttribute 抽象类 ActionNameSelectorAttribute  通过 其 抽象方法 IsValidName 判断指定的Action名称是否与目标Action方法相匹配.   如下代码片段: 添加了 ActionNameAttrib

Web API 1入门之Self-Host寄宿及路由原理(二)

前言 刚开始表面上感觉Web API内容似乎没什么,也就是返回JSON数据,事实上远非我所想,不去研究不知道,其中的水还是比较深,那又如何,一步一个脚印来学习都将迎刃而解. Self-Host 我们知道Web API它可以快速为HTTP客户端提供API来创建Web服务,为何如此这样说呢?因为我们可以将其作为主机也就是一个服务器来用完全不需要IIS,这就是我们下面要讲的第一个内容Self-Host,实现对Web API寄宿的方式有多种并且都是独立于ASP.NET框架之外,如下Self-Host寄宿

将最小的OWIN身份验证添加到现有的ASP.NET MVC应用程序

https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application 将最小的OWIN身份验证添加到现有的ASP.NET MVC应用程序 2015年4月29日•来自毛伊岛,HI•    40条评论 从ASP.NET 4开始,ASP.NET提供了一个相当有用的身份系统.如果您创建一个新项目并选择一个MVC项目并选

[转]Asp.Net MVC使用HtmlHelper渲染,并传递FormCollection参数的陷阱

http://www.cnblogs.com/errorif/archive/2012/02/13/2349902.html 在Asp.Net MVC 1.0编程中,我们经常遇见这样的场景,在新建一个对象时候,通过HtmlHelper的方式在View模型中渲染Html控件,当填写完相关内容后,通过Form把需要新建的内容Post回View对应Controller的Action(例如:Create),指定的Action可以通过接受FormCollection参数.值参数或者某个类的实例参数(比如:

C# MVC权限验证

前言 之前一直没怎么接触过权限验证这块,刚好公司老平台改版,就有了这篇权限验证.此篇文章大致讲解下 精确到按钮级别的验证如何实现.以及权限验证设计的参考思路(菜鸟一枚,大神勿喷). 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的A

<转>ASP.NET学习笔记之理解MVC底层运行机制

ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制 今天,我将开启一个崭新的话题:ASP.NET MVC框架的探讨.首先,我们回顾一下ASP.NET Web Form技术与ASP.NET MVC的异同点,并展示各自在Web领域的优劣点.在讨论之前,我对这两种技术都非常热衷,我个人觉得在实际的项目开发中,两者都能让我们受益匪浅,因此是目前Web领域两大平行和流行的技术.我们都知道,在传统的ASP.NET Web Form应用程序中,Microsoft已为我们设计了较为完整.简洁的开发