如果我创建了一个控制器操作,并且没有使用AcceptVerbs
,HttpPost
或HttpGet
来装饰它。什么是默认行为?
操作是否允许任何访问方法,还是默认为 GET ?
答案 0 :(得分:15)
可通过任何动词访问。
答案 1 :(得分:4)
取决于动作的名称。如果操作以“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"; }
}