美好的一天! 在Umbraco工作并努力在Umbraco创建动态菜单。 应使用menuName调用菜单li。
它适用于第一个循环(称为item.menuName的静态菜单),但不适用于second - node.menuName。 node.Name有效,但.menuName没有。为什么呢?
谢谢!
var homePage = CurrentPage.AncestorsOrSelf(1).First();
var menuItems = homePage.Children.Where("UmbracoNaviHide == false");
<ul class="menu">
@foreach (var item in menuItems)
{
var childrenItems = item.Children.Where("UmbracoNaviHide == false");
<li class="@(CurrentPage.Id == item.Id ? "sel" : null)">
<a href="@item.Url"><h4>@item.menuName</h4></a>
@createSubmenu(childrenItems, item.Id)
</li>
}
</ul>
@helper createSubmenu(IEnumerable<IPublishedContent> nodes, int? parentId) {
if (nodes.Count() > 0){
<ul>
@foreach (var node in nodes)
{
var childrenItems = node.Children.Where("UmbracoNaviHide == false");
<li class="@(CurrentPage.Id == node.Id ? "sel" : null)">
<a href="@node.Url"><h5>@node.menuName</h5></a>
@createSubmenu(childrenItems, node.Id)
</li>
}
</ul>
}
}
答案 0 :(得分:1)
如果您不使用强烈风格的视图,则CurrentPage
的{{1}}属性为UmbracoTemplatePage
,表示dynamic
可供访问。
但是,您的@item.menuItem
帮助程序会将动态广告投放到没有成员createSubmenu
的{{1}}。您需要使用IPublishedContent
方法:
menuName