MVC 路由 URL 到区域控制器
MVC Route URL to Area controller
嗨,我想用这个 url siteurl/admin
路由到我的 AdminLoginController(在管理区域内)。我在 RegisterArea(AreaRegistrationContext context)
函数中的代码:
context.MapRoute(
"Admin_1",
"Admin",
new { controller = "AdminLogin", action = "Index" }
);
// the default route map
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="AdminLogin", action = "Index", id = UrlParameter.Optional}
);
但是我只能通过 siteurl/Admin/AdminLogin
进入我想要的页面,而不是 siteurl/Admin
.
如果我将自定义路由更改为:
context.MapRoute(
"Admin_1",
"",
new { controller = "AdminLogin", action = "Index" }
);
然后我可以在使用 url siteurl/
.
时转到我想要的页面(AdminLogin 索引页面)
如何自定义 MapRoute 以使用 siteurl/Admin
转到我的页面?
我试图在一个只有家庭和管理员登录控制器的空白项目中复制它,但看起来以下路线应该按预期工作:
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="AdminLogin", action = "Index", id = UrlParameter.Optional}
);
您遇到的问题很可能是顺序问题,好像放在默认路由之后,它失败了,因为当提供“siteurl/Admin”时,它将首先匹配默认路由。
嗨,我想用这个 url siteurl/admin
路由到我的 AdminLoginController(在管理区域内)。我在 RegisterArea(AreaRegistrationContext context)
函数中的代码:
context.MapRoute(
"Admin_1",
"Admin",
new { controller = "AdminLogin", action = "Index" }
);
// the default route map
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="AdminLogin", action = "Index", id = UrlParameter.Optional}
);
但是我只能通过 siteurl/Admin/AdminLogin
进入我想要的页面,而不是 siteurl/Admin
.
如果我将自定义路由更改为:
context.MapRoute(
"Admin_1",
"",
new { controller = "AdminLogin", action = "Index" }
);
然后我可以在使用 url siteurl/
.
如何自定义 MapRoute 以使用 siteurl/Admin
转到我的页面?
我试图在一个只有家庭和管理员登录控制器的空白项目中复制它,但看起来以下路线应该按预期工作:
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="AdminLogin", action = "Index", id = UrlParameter.Optional}
);
您遇到的问题很可能是顺序问题,好像放在默认路由之后,它失败了,因为当提供“siteurl/Admin”时,它将首先匹配默认路由。