gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 4 ApiController 和普通 Controller 路由

转载 作者:行者123 更新时间:2023-12-03 16:17:34 24 4
gpt4 key购买 nike

我有一个仅用于向我们的应用程序发送 API 请求的项目,我们使用的是 ASP.NET MVC 4 项目。我们有一些从 ApiController 派生的 Controller 和从普通 Controller 类派生的其他 Controller 。问题是我不想为 api/XXXXX/ 的 ApiControllers 设置默认路由。 .我希望 ApiController 与非 Api Controller 使用相同的路由,即 {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} 访问。路由但“正常” Controller 不再可访问。如果我去掉 MapHttpRoute相反的情况发生。

有什么办法可以通过相同的 url 路由访问 ApiControllers 和“普通” Controller ?

最佳答案

根据我所见,唯一可以做到这一点的方法是明确命名每个 API Controller 。下面我有一个 Some ApiController 类。

routes.MapHttpRoute(
name: "SomeApiController",
routeTemplate: "SomeApi/{action}/{id}",
defaults: new { controller = "SomeApi", id = RouteParameter.Optional }
);

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

关于asp.net-mvc - ASP.NET MVC 4 ApiController 和普通 Controller 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com