【发布时间】:2026-02-23 17:40:01
【问题描述】:
我有一个名为“Location”的区域,其中有一个名为“CountryController”的控制器。我想使用 api/location/country 调用 GET 操作。有没有办法在默认路由中指定区域?
理想情况下是这样的
routeTemplate: "api/{area}/{controller}/{action}/{id}"
【问题讨论】:
-
你可以直接在你的WebApiConfig中定义它,只要你的控制器存在于对应的命名空间中即可。区域对于 MVC 来说更像是一个概念来定义它的视图搜索范围,并且由于 APIController 不需要视图,所以它不会成为问题。如果您遇到两个控制器在不同区域具有相同名称的问题,属性路由可以让您的生活更轻松 IMO
-
api/location/country 和 api/country 都没有获取资源。我只是假设这是一个区域路由问题。
-
您必须首先创建一个路由并在您的 WebApiConfig 中定义
{area},尽管您不会将其用于任何事情。否则,路由将假定您的“国家”作为控制器名称。
标签: asp.net-mvc asp.net-mvc-5.1