我的应用程序中有一些相对独立的区域(全部导航到母版页)。因此,截至目前,我只是使用“默认”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
);
有什么想法吗?
答案 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) %>