首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Html.ActionLink中“`area =”的目的是什么?

在Html.ActionLink中“`area =”的目的是什么?
EN

Stack Overflow用户
提问于 2015-12-25 23:50:01
回答 2查看 758关注 0票数 2

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

代码语言:javascript
复制
@Html.ActionLink("Application name", "Index", "Home", 
      new { area = "" }, new { @class = "navbar-brand" })

这一切对我来说都是有意义的,除了new { area = ""}部分。Intellisense表示,此参数用于路由值。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-25 23:52:54

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

如果不将区域值指定为空字符串,则将创建指向YourCurrentAreaName/Home/Index的链接。

区域是功能的逻辑分组。您可以将其视为应用程序的子模块( Ex: Blog / Admin等)。这里是一个关于应该帮助你理解它的领域的视频教程。

票数 4
EN

Stack Overflow用户

发布于 2015-12-26 01:31:21

这种行为不仅限于领域,实际上这是一个他们坚持认为,MVC行为的混乱部分是通过设计实现的。。根据Microsoft的建议,如果要覆盖从当前请求中自动注入的值,则必须显式提供路由值。

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

代码语言:javascript
复制
@Html.ActionLink("Application name", "Index", "Home", 
  null, new { @class = "navbar-brand" })

/Home/Index

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

/Admin/Home/Index

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

代码语言:javascript
复制
@Html.ActionLink("Application name", "Index", "Home", 
  new { area = "" }, new { @class = "navbar-brand" })

这确保了无论当前视图是什么区域,URL都是默认区域的URL。

/Home/Index

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34467408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档