MVC中的一项简单任务有时会成为一项艰巨的挑战。
好吧,我有一个名为Admin的区域。我在这个区域的Shared目录中有一个名为“Forbidden”的页面。
目标很简单:我需要创建一个Html.ActionLink,生成一个链接以返回主页 OUTSIDE 管理区域。
所以我尝试<%= Html.ActionLink("Back","Index",new {controller="Home"})%>
,并生成:
http://localhost/Admin/Home/Index
错了!我想:
http://localhost/Home/Index
如何创建从区域到默认控制器结构的链接?
答案 0 :(得分:53)
试试这个:
<%= Html.ActionLink("Back", "Index", "Home", new { area = "" }, null) %>
使用区域时,您应该始终通过添加路线值来指定您在ActionLinks中调用的区域,如果链接位于区域之外(如您的情况),则只需对该区域使用空参数。
我发现在任何ASP.NET MVC项目中都有一个很好的扩展( T4MVC )。它使您的ActionLinks看起来更清晰,并保护它们免受错误。
所以上面的代码看起来像这样:
<%= Html.ActionLink("Back", MVC.Home.Index()) %>
使用区域时:
<%= Html.ActionLink("Some Link", MVC.Admin.SomeController.SomeAction()) %>
它是codeplex here
上 MvcContrib 项目的一部分你应该考虑使用它。