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-маршрутам?