Действия Umbraco ApiController не будут отображаться в http-verb

Я работал с веб-API раньше.. и, насколько я помню.. Действия в (по крайней мере, в новой версии) называются Get, Post, Delete, Put и т. д., и эти действия запускаются в зависимости http-глагола в запросе..

Так, например, у вас может быть ApiController с именем UserApiController..

и если вы сделаете запрос к /api/user с помощью http-глагола POST.. тогда будет запущено/выполнено пост-действие в этом контроллере..

Однако.... похоже, что у меня возникли проблемы с этим, используя UmbracoApiController... по какой-то причине он не выполняет post или get или любое другое действие, сопоставленное с http-глаголом.. Любые идеи?.. есть ли какие-либо другие способ заставить метод выполняться в зависимости от http-глагола?

Мой текущий код:

public class MyController : UmbracoApiController
{
    [HttpPost]
    public bool Post()
    {
        return true;
    }
}

Я поставил точку останова в действии.


person Inx    schedule 15.10.2013    source источник
comment
Есть удача в этом вопросе? Я тоже столкнулся с той же проблемой. Я мог бы поразить контроллер, но я не мог получить значения от клиента к серверу. Поделитесь, если вы решили проблему   -  person Erma Isabel    schedule 25.10.2013


Ответы (1)


Причина, по которой они не будут приняты, заключается в том, что вы используете неправильный атрибут: HttpPost является частью пространства имен System.Web.Mvc, тогда как Web API является частью пространства имен System.Web.Http. Вместо этого вы должны использовать AcceptVerbs("POST").

person Jamie Howarth    schedule 15.10.2013
comment
после некоторого чтения ... не является ли HttpPost просто сокращением для AcceptVerbs (POST)? ... кажется, что это ... и моя настоящая проблема не имеет ничего общего с этим ... поскольку, если я создаю простой метод Action с именем Get ( ), Get не будет выполняться во время GET-запроса.. который работает в обычном веб-API без каких-либо украшений атрибутов, насколько я знаю.. - person Inx; 18.10.2013
comment
Какой URL-адрес вы используете для публикации в контроллере? UmbracoApiControllers сопоставляется с /umbraco/api/‹controller›/‹action›, поэтому вам нужно вызвать POST для /umbraco/api/My/Post с вашими данными. - person Jamie Howarth; 25.11.2013