我正在尝试在我的 ASP.NET MVC 应用程序中设置区域路由。
我也在使用 nuget 包AttributeRouting,而不是普通的 MVC 注册区域路由。
据我了解,区域路线如下所示:/area/controller/method
我想做的是:-/api/search/index
意思是:
- 面积 => Api
- 控制器 => 搜索控制器
- ActionMethod => 索引
.
[RouteArea("Api")]
public class SearchController : Controller
{
[POST("Index")]
public JsonResult Index(IndexInputModel indexInputModel) { .. }
}
但这并没有创建那条路线。这就是它所创建/api/index
的:search
缺少控制器。
我查看了文档并注意到了,RoutePrefix
所以我尝试了这个..
[RouteArea("Api")]
[RoutePrefix("Search")]
public class SearchController : Controller
{
[POST("Index")]
public JsonResult Index(IndexInputModel indexInputModel) { .. }
}
这实际上创建了路线/api/search/index
。
但为什么我需要把它RoutePrefix
放在那里?它不应该足够聪明,已经弄清楚这是一个SearchController
并创建 3 段路线吗?