从某个区域导航回“Home”(MVC2)

时间:2010-04-26 13:53:14

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

我的应用程序中有一些相对独立的区域(全部导航到母版页)。因此,截至目前,我只是使用“默认”MVC2模板(您在创建新MVC2项目时获得的模板)。所以菜单看起来像这样:

HOME AREA1 AREA2 AREA3 AREA4 ....关于

现在,当我第一次加载页面时,我在“HOME”上,我可以点击ABOUT而不会出现问题。我也可以导航到任何区域,但是,一旦我导航到区域页面,我就无法返回我的家或页面(404找不到)。当我导航到他们并点击about时,地址栏会显示... / AreaX / Home / Home而不是Home / Home。

我希望这与我的路由有关,但我不完全确定。我已经添加/更改了默认路由(这可能是问题!)。

这是我在global.asax中的路由值(就像我说的,默认的)

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

链接时,可以将区域设置为空(尽管需要以特殊方式执行)。有点像...

<%: Html.ActionLink("Home", "Home", "Home", new { area = (string)null; }) %>

我的参数数量可能有误。

您可以直接链接

<a href="/rooted_path_here">adasda</a>

或者您可以为HtmlHelper方法编写执行相同基本操作的扩展方法。我选择了这条路线,因为我也可以轻松授权用户。它最终调用ActionLink。

答案 1 :(得分:0)

MVC2语法

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