Asp.net mvc “面积=”的用途是什么";`在Html.ActionLink中?

Asp.net mvc “面积=”的用途是什么";`在Html.ActionLink中?,asp.net-mvc,razor,Asp.net Mvc,Razor,当我使用Visual Studio 2013创建新的MVC项目时,我注意到在_Layout.cshtml文件中,菜单栏中有一个默认链接 @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) 除了新的{area=”“}部分之外,这一切对我来说都是有意义的。Intellisense表示此参数用于路由值 我在谷歌上搜索了“Html

当我使用Visual Studio 2013创建新的MVC项目时,我注意到在_Layout.cshtml文件中,菜单栏中有一个默认链接

@Html.ActionLink("Application name", "Index", "Home", 
      new { area = "" }, new { @class = "navbar-brand" })
除了
新的{area=”“}
部分之外,这一切对我来说都是有意义的。Intellisense表示此参数用于路由值

我在谷歌上搜索了“Html.Actionlink路由值区域”(和其他排列),但找不到“区域”的简单定义


“区域”是什么有一个简单的解释吗?我以前从未在任何ActionLinks中使用过此属性。

这说明要在应用程序的根目录上创建指向主页/索引的操作链接。当您想使用
Html.ActionLink()
方法从区域下的视图创建链接时,通常会使用此方法

如果不将区域值指定为空字符串,它将创建一个指向
YourCurrentAreaName/Home/Index


区域是功能的逻辑分组。您可以将其视为应用程序的子模块(例如:Blog/Admin等)。这是一个视频教程,介绍应该帮助您理解的领域。

此行为不仅限于领域,事实上这是一个。根据Microsoft的建议,如果要覆盖从当前请求自动注入的值,则必须明确提供路由值

因此,如果您从默认区域查看视图,则此操作链接生成的URL将指向默认区域

@Html.ActionLink("Application name", "Index", "Home", 
  null, new { @class = "navbar-brand" })
/Home/Index

但是,如果您碰巧正在查看来自
Admin
区域的操作结果,则该操作链接的URL也将位于
Admin
区域

/Admin/Home/Index

因此,为了覆盖默认行为,需要使用空字符串显式指定该区域为默认区域

@Html.ActionLink("Application name", "Index", "Home", 
  new { area = "" }, new { @class = "navbar-brand" })
这确保了无论当前视图是哪个区域,URL都是默认区域

@Html.ActionLink("Application name", "Index", "Home", 
  null, new { @class = "navbar-brand" })

/Home/Index

我看到了第二个和第三个参数(操作和控制器名称)是如何做到这一点的。但是“区域”和它有什么关系呢?更重要的是,什么是“区域”?区域是代码的逻辑分组。你刚才提到的链接使解释更加完整。我学到了一些全新的(有用的)东西。你应该在答案中加上这个。