Asp.net mvc 区域布线,为什么需要区域名称?
我有一个有两个领域的项目。这确实有效,但我是一个新手,我想知道为什么 我有一个叫LogonArea的地方Asp.net mvc 区域布线,为什么需要区域名称?,asp.net-mvc,Asp.net Mvc,我有一个有两个领域的项目。这确实有效,但我是一个新手,我想知道为什么 我有一个叫LogonArea的地方 context.MapRoute( "LogonArea_default", "LogonArea/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } 为什么需要“LogonArea/”部件?
context.MapRoute(
"LogonArea_default",
"LogonArea/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
为什么需要“LogonArea/”部件?如果没有它,它就不能找到控制器吗
当我尝试移除它时,我仍然可以到达那个区域的控制器,但奇怪的是,我在那个页面上无法到达其他区域
如果这真的是必要的,我如何才能屏蔽它,使该区域在url中不可见
谢谢如果您从区域路由注册中删除
/LoginArea/
,它将能够找到您的控制器(只要您没有任何冲突的控制器名称,例如主区域中的HomeController和区域中的HomeController)
主要是为了方便你。如果您有一个管理区域,那么您站点中的所有内容都可以通过/Admin/{controller}访问。这主要是一个组织问题
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
我在这个项目中创建了一个名为FooController
的控制器,我可以转到url/Foo
来访问它,而无需转到/Admin/Foo
创建指向区域外控制器的链接时,需要指定其所在区域(或指定没有区域):
当你想“离开”该区域时,请查看我关于指定该区域的更新。这很有效。我确实在ActionLink中有'area='位,但我想我所做的是在从路由中删除{area}段时删除它。非常感谢您的帮助:-)
@Html.ActionLink("Go Home", "Index", "Home", new { area = "" }, null)