ASP.NET MVC ActionLink外部区域
收藏

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

好吧,我有一个叫做Admin的区域。我在此区域的共享目录中有一个名为“禁止”的页面。

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

So i try,<%= Html.ActionLink("Back","Index",new {controller="Home"})%>,and its generate :

http://localhost/Admin/Home/Index

错了!我想要:

http://localhost/Home/Index

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

最佳答案

尝试这个 :

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

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

我发现在任何ASP.NET MVC项目(T4MVC)中都有一个不错的扩展。它可以使您的ActionLink看起来更加整洁,并可以防止它们出错。

因此,上面的代码将如下所示:

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

当使用区域时:

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

这是Codeplex上MvcContrib项目的一部分

您应该考虑使用它。

    公众号
    关注公众号订阅更多技术干货!