2013-06-17 10 views
7

ho ottenuto questo percorso:Web API Routing - più azioni sono stati trovati che corrispondono alla richiesta

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

E Actions:

[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) 

Questo è il messaggio Richiesta:

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

Perché sono sempre state rilevate più azioni che corrispondono all'errore della richiesta?

risposta

38

ho ottenuto questo percorso:

Quello che hai indicato è un percorso per i controller MVC. Spero ti renderai conto che i controller API Web sono una cosa completamente diversa. Hanno i loro percorsi definiti nel ~/App_Start/WebApiConfig.cs.

Quindi assicuratevi tat di aver incluso il {action} token nel vostro Web definizione della rotta API (che ripeto ancora una volta, non ha nulla a che fare con le vostre definizioni di percorso MVC):

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

Grazie, è risolto il mio problema –

+0

Ho risolto anche il mio problema. Grazie! –

+0

funziona anche per me. Grazie –

Problemi correlati