API Controller не работает маршрутизация Post, Put и Delete

Я работаю с отдыхающими службами asp.net и создал контроллер WebApi. он отлично работает с Get, но не работает с Post, Put Delete.

 public string Get()
        {
            return "value";
        }

 public string Post()
        {
            return "value";
        }

Конфигурация маршрутизации

 config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

http://localhost:50089/api/UserProfile/get
http://localhost:50089/api/UserProfile/Post

Сообщение не работает, но получить работает, я пытаюсь добавить маршрут сверху, но это не работает

1 ответ

Попробуй это:

    [HttpPost]
    public IHttpActionResult MyPostMethod(string param)
    {
       ...
       return Ok();
    }

Кроме того, вы должны вернуть IHttpActionResult:

Интерфейс IHttpActionResult был представлен в Web API 2. По сути, он определяет фабрику HttpResponseMessage. Вот некоторые преимущества использования интерфейса IHttpActionResult:

• Упрощает модульное тестирование ваших контроллеров.

• Перемещает общую логику для создания HTTP-ответов в отдельные классы.

• Делает намерение действия контроллера более понятным, скрывая низкоуровневые детали построения ответа.

Для тестирования вы можете использовать надстройку "постер" для Firefox.

Другие вопросы по тегам