【发布时间】:2010-09-08 22:29:15
【问题描述】:
如果我创建一个控制器动作并且不使用AcceptVerbs、HttpPost 或HttpGet 来装饰它。默认行为是什么?
该操作是否允许任何访问方法或默认为 GET?
【问题讨论】:
标签: http asp.net-mvc-2 http-post http-get acceptverbs
如果我创建一个控制器动作并且不使用AcceptVerbs、HttpPost 或HttpGet 来装饰它。默认行为是什么?
该操作是否允许任何访问方法或默认为 GET?
【问题讨论】:
标签: http asp.net-mvc-2 http-post http-get acceptverbs
它可以通过任何动词来访问。
【讨论】:
这取决于动作的名称。如果操作以“Get*”开头,那么它将默认只接受 GET 请求。如果它以“Put*”开头,那么它将默认只接受 PUT 请求。与 POST 相同。
如果它不以任何已知动词开头,那么它将默认只接受 POST。
这是我的测试结果:
public class BlahController : ApiController
{
// only allows GET
public string GetSomething() { return "GetSomething blah"; }
// only allows PUT
public string PutSomething() { return "PutSomething blah"; }
// only allows POST
public string PostSomething() { return "PostSomething blah"; }
// only allows POST
public string Fleabag() { return "Fleabag blah"; }
}
【讨论】: