2016-07-26 7 views
0

Ich habe eine MVC-App, die auch Webapi-Anfragen bedienen muss. Es ist bereits ein MVC-Routing vorhanden, wobei die letzte Route die Route zum Weiterleiten an eine Fehlerseite ist. Die WebApiConfig ist die Standardeinstellung von Visual Studio eingerichtet. Diese letzte MVC-Catch-Route fängt die /api-Aufrufe ein und folglich erreichen die Webapi-Aufrufe niemals den Endpunkt.MVC Routing catch-all und WebApi

Ich verstehe, dass Routen verarbeitet werden mit dem ersten Spiel Ansatz, aber ich dachte, dass die /api Anrufe von jedem MVC Routing ignoriert werden würde und nur an den WebAPI Router weitergegeben.

Gibt es eine Möglichkeit, eine Catch-all-MVC-Route zu haben, die keine /api Anrufe abfängt?

Antwort

0

Die Reihenfolge, in der Sie Routen konfigurieren, ist wegen des ersten Übereinstimmungsansatzes wichtig. Wenn Sie die Web-API-Routen vor den MVC-Routen konfigurieren, sollten Sie vermeiden, dass die Web-API-Routen von der MVC-Route abgefangen werden, vorausgesetzt, es wurde eine Übereinstimmung von der Web-API gefunden.

Stellen Sie sicher, dass die Konfiguration der Web-API-Routentabelle vor der Konfiguration der MVC-Routentabelle erfolgt.

GlobalConfiguration.Configure(WebApiConfig.Register); 
RouteConfig.RegisterRoutes(RouteTable.Routes);