Каково поведение контроллера по умолчанию, не помеченное AcceptVerbs, HttpGet или HttpPost?
Если я создаю действие контроллера и не украшаю его AcceptVerbs
, HttpPost
или же HttpGet
, Каково поведение по умолчанию?
Разрешает ли действие какой-либо метод доступа или по умолчанию это GET?
2 ответа
Решение
В Web API 2.1:
это зависит от названия действия. Если действие начинается с "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"; }
}