31

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

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

目标很简单:我需要创建一个Html.ActionLink ,它会生成一个链接以返回到位于管理区域之外的主页。

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

http://localhost/Admin/Home/Index

它错了!我想要:

http://localhost/Home/Index

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

4

1 回答 1

56

试试这个 :

<%= Html.ActionLink("Back", "Index", "Home", new { area = "" }, null) %> 

使用区域时,您应该始终通过添加上述路由值来指定您在 ActionLinks 中调用的区域,如果链接在区域之外(如您的情况),只需为区域使用空参数。


我发现在任何 ASP.NET MVC 项目 ( T4MVC ) 中都有一个不错的扩展。它使您的 ActionLink 看起来更干净,并保护它们免受错误的影响。

所以上面的代码看起来像这样:

<%= Html.ActionLink("Back", MVC.Home.Index()) %>

使用区域时:

<%= Html.ActionLink("Some Link", MVC.Admin.SomeController.SomeAction()) %>

这是codeplex 上MvcContrib项目的一部分

你应该考虑使用它。

于 2010-09-21T02:56:54.543 回答