Вы не можете полностью игнорировать фильтрацию по методу HTTP
в Web API
, фреймворк выглядит довольно строгим в этом вопросе.Но вы можете указать предопределенный набор любых имен методов, которые вам нужны (даже фиктивные), используя AcceptVerbs
атрибут
[AcceptVerbs("POST", "GET", "MyMethod", "Bo-Gus")]
public IHttpActionResult MyAction()
Или вы можете реализовать IActionHttpMethodProvider
, который возвращает разрешенные методы
[AttributeUsage(AttributeTargets.Method)]
public class AllowBogusMethodsAttribute : Attribute, IActionHttpMethodProvider
{
public Collection<HttpMethod> HttpMethods
{
get
{
return new Collection<HttpMethod>
{
HttpMethod.Get,
HttpMethod.Post,
new HttpMethod("MyMethod"),
new HttpMethod("Bo-Gus")
};
}
}
}
и используйте его вот так
[AllowBogusMethods]
public IHttpActionResult MyAction()
Примечание
HttpMethods
метод get будет вызываться только один раз за время существования приложения, и его результат будет кэшироваться, и поэтому выневозможно добавить новые разрешенные HTTP
методы во время запросов и вернуть обновленную коллекцию.