2013-06-17 18 views
7

dostałem tej trasie:Web API Routing - wiele działań stwierdzono, że pasuje do żądania

 routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { id = UrlParameter.Optional } 
     ); 

i to działań:

[System.Web.Http.HttpPost] 
    [System.Web.Http.ActionName("GetLoginSeed")] 
    public object GetLoginSeed() 

    [System.Web.Http.HttpPost] 
    [System.Web.Http.AllowAnonymous] 
    [System.Web.Http.ActionName("Authenticate")] 
    public object PerformLogin(JObject jr) 

To żądanie POST:

http://localhost:61971/api/Login/GetLoginSeed 

Dlaczego zawsze otrzymuję wiele działań, które pasują do błędu żądania?

Odpowiedz

38

mam tej trasie:

Co wykazały to trasa dla kontrolerów MVC. Mam nadzieję, że zdajesz sobie sprawę, że kontrolery Web API to zupełnie inna sprawa. Mają własne trasy zdefiniowane w ~/App_Start/WebApiConfig.cs.

Więc upewnij tat masz obejmowały {action} token w swojej internetowej definicji trasy API (co powtarzam po raz kolejny nie ma nic wspólnego ze swoimi definicjami trasy MVC):

config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}" 
); 
+0

Dziękuję, to rozwiązać mój problem –

+0

Rozwiązałem też mój problem. Dziękuję Ci! –

+0

również dla mnie. dzięki –

Powiązane problemy