ASP.NET MVC 4 ApiController y rutas de controlador normales
Tengo un proyecto que se utiliza únicamente para solicitudes de API en nuestra aplicación y estamos utilizando un proyecto ASP.NET MVC 4. Tenemos algunos controladores que se derivan de ApiController y otros que se derivan de la clase de controlador normal. El problema es que no quiero tener el enrutamiento predeterminado para los ApiControllers deapi/XXXXX/
. Quiero que se use el mismo enrutamiento para los controladores de Api que los controladores que no son de Api, a saber{controller}/{action}/{id}
. He intentado añadir las siguientes rutas.
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 }
);
Esto lo hará para que mis ApiControllers sean accesibles usando el modo normal.{controller}/{action}
El enrutamiento pero los controladores "normales" ya no son accesibles. Si me deshago de laMapHttpRoute
Sucede lo contrario.
¿Hay alguna forma de tener acceso a los controladores ApiControllers y "normales" a través de las mismas rutas de url?