ASP.NET MVC 4 ApiController и нормальные маршруты контроллера
У меня есть проект, который используется исключительно для запросов API в наше приложение, и мы используем проект ASP.NET MVC 4. У нас есть некоторые контроллеры, производные от ApiController, а другие - от обычного класса Controller. Проблема в том, что я нене хочу иметь маршрутизацию по умолчанию для ApiControllersapi/XXXXX/
, Я хочу, чтобы для ApiControllers использовалась та же маршрутизация, что и для не-Api контроллеров, а именно{controller}/{action}/{id}
, Я попытался добавить следующие маршруты
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 }
);
Это сделает так, чтобы мои ApiControllers были доступны с помощью обычного{controller}/{action}
пойдут нонормальный" Контроллеры больше не доступны. Если я избавлюсь отMapHttpRoute
происходит обратное.
Есть ли способ иметь ApiControllers и "нормальный" Контроллеры доступны через те же URL-маршруты?