Ren*_*ado 2 asp.net-mvc-areas tag-helpers asp.net-core
我最近更新了Visual Studio forUpdate 3和ASP.Net Core for 1.0.0。
我按照文档中的教程进行操作,并尝试设置使用像这样的区域https://docs.asp.net/en/1.0.0/mvc/controllers/areas.html
但是,生成的链接是http://localhost:2187/?area=Admin,而不是http://localhost:2187/Admin/Home/Index
更新
我的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
});
Run Code Online (Sandbox Code Playgroud)
怎么了?
解决方案
问题在于答案中提到的路线顺序。
这表示您没有在区域内所经过的地方注册路线。
区域路由示例:
app.UseMvc(routes =>
{
routes.MapRoute(name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
Run Code Online (Sandbox Code Playgroud)
更新:
您必须重新排序路线,因为在这种情况下,将匹配第一条路线。我建议查看路由文档以了解为什么顺序很重要。
| 归档时间: |
|
| 查看次数: |
3298 次 |
| 最近记录: |