【发布时间】:2015-11-23 09:09:12
【问题描述】:
我正在做一个项目,我想向 masterPage 添加顶部链接,并且每个顶部链接都有自己的导航,如下所示:
我所做的是将顶部链接直接包含在内容下方
然而,这个问题是在选择非主页链接下的菜单时,URL 路径是错误的
例如,如果我选择 For skolpersonal 作为顶部链接,然后选择菜单和子菜单,则 URL 路径将是:menu/submenu 我想要的是:for-skolpersonal/menu/submenu 出于某种原因,每次我选择顶部链接下的菜单时,URL 都会“重置”。
母版页:
<header>
<div class="row col-md-12">
<nav class="entry-links">
<ul>
<li id="elever">
<a href="~/" title="För elever">För elever</a>
</li>
<li id="skolpersonal">
<a href="/for-skolpersonal/" title="För skolpersonal">För skolpersonal</a>
</li>
<li id="ungdom">
<a href="/ungdom-och-elevdatabas/" title="Ungdom och elevdatabas">Ungdom och elevdatabas</a>
</li>
</ul>
</nav>
</div>
<div class="row">
<div class="col-xs-8 col-sm-12 col-md-4">
<a href="@home.Url">
<div class="brand" style="background-image:url('@(home.SiteLogo)?height=100&width=700&')"></div>
</a>
</div>
</div>
<div class="row">
<div class="col-md-12 main-nav">
<nav id="cbp-hrmenu" class="meny cbp-hrmenu col-md-10 col-md-offset-1">
@{ Html.RenderPartial("MainNavigation"); }
</nav>
</div>
<br />
<br />
</div>
<div class="container-fluid">
<div class="container">
</div>
</div>
<div id="toggle" class="toggle">
<a href="#" class="cross"><span></span></a>
</div>
</header>
主导航:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{ var home = CurrentPage.Site(); }
@if (home.Children.Any())
{
@* Get the first page in the children *@
var naviLevel = home.Children.First().Level;
@* Add in level for a CSS hook *@
<div class="linje"></div>
<ul class="meny level-@naviLevel">
@* For each child page under the home node *@
@foreach (var childPage in home.Children)
{
if (childPage.Children.Any())
{
<li class="dropdown has-child @(childPage.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
@if (childPage.DocumentTypeAlias == "Huvudmeny")
{
<span>@childPage.Name</span>
@childPages(childPage.Children)
}
else
{
<a href="@childPage.Url" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">@childPage.Name</a>
}
@helper childPages(dynamic pages)
{
@* Ensure that we have a collection of pages *@
if (pages.Any())
{
@* Get the first page in pages and get the level *@
var naviLevel = pages.First().Level;
@* Add in level for a CSS hook *@
<ul class="meny dropdown-menu sublevel level-@(naviLevel)">
@foreach (var page in pages)
{
<li>
<a href="@page.Url">@page.Name</a>
@* if the current page has any children *@
@if (page.Children.Any())
{
@* Call our helper to display the children *@
@childPages(page.Children)
}
</li>
}
</ul>
}
}
</li>
}
else
{
<li class="@(childPage.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
<a href="@childPage.Url">@childPage.Name</a>
</li>
}
}
</ul>
<div class="linje col-md-12" ></div>
}
有没有办法让 URL 路径按照我的意愿运行? 顶部菜单/菜单/子菜单
我正在使用 Umbraco。
【问题讨论】: