我有一个项目仅用于 API 请求进入我们的应用程序,我们正在使用 ASP.NET MVC 4 项目。我们有一些从 ApiController 派生的控制器和其他从普通控制器类派生的控制器。问题是我不想为api/XXXXX/
. 我希望 ApiController 与非 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 }
);
这将使我的 ApiController 可以使用普通{controller}/{action}
路由访问,但“普通”控制器不再可访问。如果我摆脱MapHttpRoute
了相反的情况。
有没有办法让 ApiControllers 和“普通”控制器通过相同的 url 路由访问?