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”时,它将首先匹配默认路由。