如果我没有为action方法指定[httpGet]或[httpPost],那么调用它的规则是什么

joh*_* Gu 4 asp.net asp.net-mvc http asp.net-mvc-4

以前很多文章都提到HttpGet是默认的http方法.例如,如果我在asp.net mvc web应用程序中有以下操作方法,没有任何[httpGet]或[HttpPost]: -

Public ActionResult TestMethod(int I =0)
Run Code Online (Sandbox Code Playgroud)

所以我认为这个动作方法将被定义为Get动作方法,如果我按照以下方式发送Posr请求将无法访问“POST http://severname/test/TestMethod?i=1”.

但是,当我没有指定任何http方法时,我的动作方法似乎可用于Post和Get请求.所以我知道HttpGet是默认的,但似乎不是这样吗?或者我错过了关于什么是httpGet默认的意思?有人可以建议吗?谢谢

小智 10

我的理解,默认情况下它接受这两种类型的请求,无论是GET还是POST.但是当使用[httpGet]或[httpPost]属性修饰操作方法时,操作方法仅接受按属性定义的请求方法.

  • 当然假设你没有添加一个而不是另一个.例如,如果您具有相同的操作名称,一个没有属性,另一个具有`[HttpPost]`,那么没有属性的操作名称只是隐式GET. (3认同)