问题描述
嗨,我想使用该URL siteurl/admin
路由到我的AdminLoginController(在Admin区域内)。我在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","",action = "Index" }
);
然后,使用网址siteurl/
时,我可以转到所需的页面(AdminLogin索引页面)。
如何自定义MapRoute以使用siteurl/Admin
转到我的页面?
解决方法
我尝试在仅具有家庭和管理员登录控制器的空白项目中复制此文件,但似乎以下路由应能按预期工作:
context.MapRoute(
"Admin_default","Admin/{controller}/{action}/{id}",new { controller="AdminLogin",action = "Index",id = UrlParameter.Optional}
);
您遇到的问题很可能是由于顺序所致,就像放置在默认路由之后一样,它失败了,因为在提供“ siteurl / Admin”时它将首先匹配默认路由。