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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta