ASP.NET MVC 4 ApiController- und normale Controller-Routen
Ich habe ein Projekt, das ausschließlich für API-Anforderungen in unserer App verwendet wird, und wir verwenden ein ASP.NET MVC 4-Projekt. Wir haben einige Controller, die vom ApiController abgeleitet sind, und andere, die von der normalen Controller-Klasse abgeleitet sind. Das Problem ist, dass ich nicht das Standardrouting für die ApiController von haben möchteapi/XXXXX/
. Ich möchte, dass für die ApiController dasselbe Routing verwendet wird wie für die Nicht-Api-Controller, und zwar{controller}/{action}/{id}
. Ich habe versucht, die folgenden Routen hinzuzufügen
routes.MapHttpRoute(
name: "Api",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Dies wird es so machen, dass meine ApiController mit den normalen zugänglich sind{controller}/{action}
routing aber "normale" controller sind nicht mehr erreichbar. Wenn ich das los werdeMapHttpRoute
das Gegenteil passiert.
Gibt es eine Möglichkeit, ApiController und "normale" Controller über die gleichen URL-Routen erreichbar zu machen?