2015-02-25 3 views
0

Я работаю с asp.net restful services и создал WebApi Controller. он отлично работает с Get, но не работает с Post, Put Delete.Контроллер API Post, Put и Delete не работает

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

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

Routing Configuration

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 

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

+0

Вы можете попробовать использовать атрибут '[HttpPost]' для своего метода. – Patrick

+0

Я пробовал, но он не работает –

+3

Вы должны использовать глагол POST в заголовке, чтобы получить сообщение, перенаправленное на вашу функцию Post(). Использовать клиент клиентского клиента с расширенным клиентом. – lcryder

ответ

-1

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

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

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

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

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

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

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

Для тестирования вы можете использовать дополнение 'poster' для Firefox.

+1

«Вы должны вернуть IHttpActionResult»? Это сильное заявление. Можете ли вы поддержать эту документацию? – Patrick

+0

Дополнительные документы и ссылка добавлена –

Смежные вопросы