我已经为现有项目添加了一个区域,现在有以下链接可以导航到它:
@Html.ActionLink("Dashboard", "Index", "Dashboard", new { area = "Admin" }, null)
导航面板中的所有其他链接都保持不变,如下所示:
@Html.ActionLink("My Properties", "Index", "Property")
现在的问题是,当我导航到仪表板并且旧链接尝试在该区域内导航时,我的工作是:
@Html.ActionLink("My Properties", "Index", "Property", new { area = "" }, null)
还有其他方法可以为现有链接设置默认空白区域吗?追逐所有链接并更新它们有点烦人
答案 0 :(得分:2)
在RouteConfig.cs中设置默认区域应该有帮助:
你可以这样做:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional }
).DataTokens.Add("area", "");
或语法略有不同:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional }
).DataTokens = new RouteValueDictionary(new { area = "" });
答案 1 :(得分:1)
不幸的是,不是一个简单的。您需要更新链接。您可以创建自定义ActionLink扩展方法Html.DefaultActionLink或类似的东西,并使用它来添加空白区域(全局替换所有链接),如果您不想在每个操作中写入字符串。