ASP.NET MVC ActionLink外部区域

时间:2010-09-21 00:01:24

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

MVC中的一项简单任务有时会成为一项艰巨的挑战。

好吧,我有一个名为Admin的区域。我在这个区域的Shared目录中有一个名为“Forbidden”的页面。

目标很简单:我需要创建一个Html.ActionLink,生成一个链接以返回主页 OUTSIDE 管理区域。

所以我尝试<%= Html.ActionLink("Back","Index",new {controller="Home"})%>,并生成:

http://localhost/Admin/Home/Index

错了!我想:

http://localhost/Home/Index

如何创建从区域到默认控制器结构的链接?

1 个答案:

答案 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 项目的一部分

你应该考虑使用它。