在Visual Studio中创建新的MVC项目时,_Layout.cshtml
文件中创建的导航栏包含如下所示的链接。它用作应用程序的“主页”按钮,area=""
值表示默认区域。
它工作得很好,但我想知道是否可以用命名值替换""
。
@Html.ActionLink("Sample", "Index", "Home",
new { area = "" }, new { @class = "navbar-brand" })
我查看了默认路线,没有看到任何区域参数。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id =
UrlParameter.Optional }
);
我可以做一些简单的调整,以便area=""
可以写成`area =“default”,或者其他一些非空值?
答案 0 :(得分:1)
使用ActionLink / RouteLink / UrlHelper时,需要将area
放入路径值集合中。
然而,在封面下,MVC实际上使用DataTokens["area"]
来确定要匹配的区域。因此,如果您要与当前请求进行比较,您可以检查DataTokens["area"]
是否存在 - 如果不存在,则表示请求默认区域。
您还可以在路线配置中的路线上设置该参数,如果您希望它们特定于某个区域。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id =
UrlParameter.Optional }
).DataTokens["area"] = "default";