MVC 5 ActionLink默认区域值

时间:2015-11-24 06:15:56

标签: asp.net-mvc asp.net-mvc-5

我已经为现有项目添加了一个区域,现在有以下链接可以导航到它:

@Html.ActionLink("Dashboard", "Index", "Dashboard", new { area = "Admin" }, null)

导航面板中的所有其他链接都保持不变,如下所示:

@Html.ActionLink("My Properties", "Index", "Property")

现在的问题是,当我导航到仪表板并且旧链接尝试在该区域内导航时,我的工作是:

@Html.ActionLink("My Properties", "Index", "Property", new { area = "" }, null)

还有其他方法可以为现有链接设置默认空白区域吗?追逐所有链接并更新它们有点烦人

2 个答案:

答案 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或类似的东西,并使用它来添加空白区域(全局替换所有链接),如果您不想在每个操作中写入字符串。