独立于默认控制器的区域的默认登录页面?
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 在他的评论中解释的那样,这使得控制器成为可选的,因为默认控制器现在是家庭控制器。
我有一个 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 在他的评论中解释的那样,这使得控制器成为可选的,因为默认控制器现在是家庭控制器。