独立于默认控制器的区域的默认登录页面?

Default landing page for an area independent of a default controller?

我有一个 MVC5 网站,里面有几个区域。每个区域都有自己的一组控制器,显然每个控制器都有一个默认的 Index.cshtml 作为登录页面。到目前为止一切顺利。

但是我该如何为一个区域实施登陆页面呢?我不认为独立于控制器的区域可以有登录页面,所以也许我需要使用一种区域主控制器来自愿提供登录页面。

问题是我想要这样的 URL 工作:

http://www.domain.exe/AreaN/

目前这不起作用,除非我这样做:

http//www.domain.exe/AreaN/Controller/

此时我的区域注册路线是这样的

context.MapRoute(
            "AreaN_default",
            "AreaN/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional },
            new string[] { "Namespace" }
        );

我对 Areas 不太熟悉,但是你不能在你的路线选项中定义 controller 吗?

context.MapRoute(
            "AreaN_default",
            "AreaN/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            new string[] { "Namespace" }
        );

那么 AreaN/Home/Index 将是您的默认视图。

正如 NightOwl888 在他的评论中解释的那样,这使得控制器成为可选的,因为默认控制器现在是家庭控制器。