Каково поведение контроллера по умолчанию, не помеченное 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"; }
}
Другие вопросы по тегам