MVC 4.5 Web API das Routing nicht funktioniert?
Dem 1. route funktioniert.
z.B. api/Shelves/SpaceTypes/1
Die 2. route funktioniert nicht. Ich bekomme mehrere Aktionen Fehler.
e.g api/Shelves/1
Q) Warum?
Diese sind meine Strecken:
config.Routes.MapHttpRoute(
"DefaultApiWithAction",
"api/{controller}/{action}/{id}"
);
config.Routes.MapHttpRoute(
"DefaultApiWithId",
"api/{controller}/{id}",
null,
new { id = @"\d+" }
);
Dies ist mein controller:
public HttpResponseMessage Get(int id)
{
...
}
[ActionName("SpaceTypes")]
public HttpResponseMessage GetSpaceTypes(int id)
{
...
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für MVC 4.5 das ist das einzige, was funktioniert
Derzeit gibt es eine über diesen bug.
Um Ihre routing zu arbeiten, damit die folgenden arbeiten
müssen Sie Folgendes tun.
Ändern Sie Ihre routing über. (Hinweis: die default-Aktion..)
In dem controller ändern Sie die Basis-Methoden über
Nun sollte alles wie erwartet funktionieren..
Dank Kip Streithorst voll diese, für eine vollständige Erklärung
Ich hatte ein ähnliches Problem und entdeckte, dass ich war nicht aufrufen MapHttpAttributeRoutes Methode in meinem WebApiConfig...
hoffe es hilft,
David
@Kristof ist fast richtig. Sie sollte Ihre zweite route:
Diese route nicht wissen, welche Aktion zu binden :
Beide Methoden gelten als Kandidaten.
Ich bin mir nicht 100% klar, was dein setup ist aber im normalen Ruhezeiten jede Ressource hat einen controller, wie es scheint, Sie haben 1 controller mit 2 Ressourcen.
Damit es funktioniert, in diesem setup, die Sie zwingen könnte, Ihre zweite Weg, um der get-Aktion wie folgt :
Stellen Sie sicher, dass in Ihrem Projekt ist Global.asx-Datei, die Sie Hinzugefügt haben
in der Application_Start-Funktion.