【发布时间】:2019-08-02 17:32:44
【问题描述】:
我需要 .net core 2.2 (MVC) 中每个区域的默认页面。这意味着如果有人键入例如“https://url/admin”(其中 admin 是区域),他会被路由到说“https://url/admin/user/index”。我想在每个领域都这样做。
在 app.UseMvc(routes =>... 中设置第二个默认页面给我一个错误。
【问题讨论】:
标签: c# asp.net-core
我需要 .net core 2.2 (MVC) 中每个区域的默认页面。这意味着如果有人键入例如“https://url/admin”(其中 admin 是区域),他会被路由到说“https://url/admin/user/index”。我想在每个领域都这样做。
在 app.UseMvc(routes =>... 中设置第二个默认页面给我一个错误。
【问题讨论】:
标签: c# asp.net-core
只需更改区域路由的默认控制器和操作,例如
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=User}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
更新: 如果您想将不同的区域路由到不同的默认页面,您可以为这两个区域分别设置路由:
app.UseMvc(routes =>
{
routes.MapAreaRoute(
name: "AdminRoute",
areaName: "Admin",
template: "Admin/{controller=News}/{action=Index}/{id?}");
routes.MapAreaRoute(
name: "ManagementRoute",
areaName: "Management",
template: "Management/{controller=User}/{action=Detail}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
【讨论】: