在Html.Action帮助器中指示路由名称

时间:2014-04-28 12:34:36

标签: c# asp.net-mvc-4

是否可以在Html.Action中以某种方式显示routeName 像这样的东西

Html.Action("Languages", "UIHelper", new {routeName="Default"});

目前我的应用程序有很多区域,主要布局中使用了Html.Action。当我将用户重定向到区域页面时,我的Html.Action无法找到操作/控制器,因为mvc尝试在当前(重定向)区域中找到它

1 个答案:

答案 0 :(得分:0)

没有Html.Action()扩展方法可以使用路由名称。当然,您可以创建自己的扩展方法以满足您的需求,我建议您这样做是一个很好的练习,但在您的情况下,解决方案可能会更简单。

默认情况下,所有路由都使用当前区域进行匹配。您可以通过提供Area参数来覆盖区域,如下所示:

@Html.ActionLink("MyLink",  "MyAction", new {Area = "MyArea" });

在您的情况下,您希望在根区域中使用控制器,该控制器仅表示为空白字符串。所以你需要做的就是:

@Html.Action("Languages", "UIHelper", new { Area = "" });