2015-10-03 3 views
1

У меня есть ApiController как таковой:ASP.NET Web Api 2 както Id

public class MessengerController : ApiController 
{ 
    public IEnumerable<string> GetAllMessages() 
    { 
     // irrelevant code 
    } 

    public IHttpActionResult GetMessage(int index) 
    { 
     // irrelevant code 
    } 
} 

Я пытаюсь вызвать мой GetMessage функцию со следующим URL:

http://localhost:58050/api/messenger/1

Но что всегда вызывает мою функцию GetAllMessages. Я что-то упускаю? Вот мой WebApiConfig класс, я не изменил его от pregenerated кода:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Web API configuration and services 

     // Web API routes 
     config.MapHttpAttributeRoutes(); 

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

ответ

3

Имя ваш параметр id, не index, для GetMessage.

+0

Спасибо! У меня была такая же проблема, теперь она сработала. –

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