【发布时间】:2017-01-28 04:39:50
【问题描述】:
我发现了一个与标准 asp.net 控制器相关的类似问题,但我已经尝试过了,但它似乎不适用于 apicontroller。
Restrict route to controller namespace in ASP.NET Core
我希望将来可以弃用 API,而无需更改 url。为了解决这个问题,我将在路线的开头放置一个版本前缀。这样,我可以在不破坏与此 API 的任何集成的情况下向端点添加一些修改。
config.Routes.MapHttpRoute(
name: "V1 API",
routeTemplate: "v1/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "V2 API",
routeTemplate: "v2/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我希望保持相同的控制器名称,并且在大多数情况下,一切都将完全相同,响应和请求正文将是唯一改变的东西。我试图在控制器文件夹中添加一个子目录,以便将 v1 和 v2 添加到控制器的命名空间,但我收到一个错误,提示有 2 个控制器具有相同的名称。
如何修改路由,使其指向控制器的 v1 命名空间,而不仅仅是搜索控制器中的任何类。我不想将版本添加到控制器名称中,因为我想让修订更新尽可能无缝。
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4