【发布时间】:2017-05-02 18:15:25
【问题描述】:
我正在尝试用链接填充我的标题。我目前有两个下拉菜单。我想使用 Umbraco 和 Razor 填充链接,因此没有任何内容是硬编码的。这可以很容易地完成(参见下面的代码),但填充下拉列表是棘手的部分。
我不确定如何以一种好的方式填充下拉列表。它们不是子页面或类似的东西,但它们只是使标题不那么宽的下拉菜单。下面是我如何使用 Razor 通过抓取 Umbraco 中的链接来填充我的标题:
var home = CurrentPage.Site();
@foreach (var item in home.Children.Where("Visible"))
{
<li class="@(item.IsAncestorOrSelf(CurrentPage) ? "active" : null)">
<a href="@item.Url" class="nav-link">@Umbraco.GetDictionaryValue(item.Name)</a>
</li>
}
home.Children.Where("Visible") 只是简单地抓取所有子页面,我没有检查umbracoNaviHide。
这是目前我的标题是如何创建的,而不是使用 Umbraco(我需要使用来自 Umbraco 的页面来填充):
<nav class="navbar navbar-toggleable-lg navbar-light fixed-top">
<div class="d-flex align-items-center justify-content-between">
<button class="navbar-toggler navbar-toggler-left" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand ml-3" href="/en">
<img src="logo.png" class="logo" alt="logo">
</a>
</div>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto justify-content-between full-width">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
About
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">About Us</a>
<a class="dropdown-item" href="#">History</a>
</div>
</li>
<li>
<a href="" class="nav-link">Our Products</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href id="navbarDropdownMenuLink2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Resources
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink2">
<a class="dropdown-item" href="#">Tips</a>
<a class="dropdown-item" href="#">News</a>
</div>
</li>
<li>
<a href="" class="nav-link">Contact Us</a>
</li>
</ul>
</div>
</nav>
这将产生如下结果:https://codepen.io/anon/pen/QvyeRm
我不希望任何链接受此影响,因为链接或页面实际上与标题的布局没有任何关系。以下是一些示例 URL:
/en/about-us/
/en/history/
/en/our-products/
/en/tips/
我希望这是有道理的。
有没有好的简单的方法来做到这一点?
【问题讨论】: