2017-09-01 69 views
0

我试图建立与使用剃刀子菜单的菜单,这我不熟悉的,到目前为止,我可以得到顶级的用的元素:一把umbraco剃刀得到一个孩子的孩子

@{ var selection = CurrentPage.Site().Children.Where("Visible"); } 

然后:

@foreach (var item in selection) 
{ 
    <li class="@(item.IsAncestorOrSelf(CurrentPage) ? "current" : null)"> 
     <a href="@item.Url">@item.Name</a> 
    </li> 
} 

但是,如果我尝试测试,如果一个新的水平存在有:

@foreach (var item in selection) 
{ 
    <li class="@(item.IsAncestorOrSelf(CurrentPage) ? "current" : null)"> 
     <a href="@item.Url">@item.Name</a> 
    </li> 

    @if (item.Children.Where("Visible").Any()) { <li><p>has children</p></li> } 

} 

我得到一个错误。

@if (item.Descendants().Where("Visible").Any()) { <li><p>has children</p></li> } 

这也行不通。

任何人都可以启发我,我做错了什么?我认为这是可能的,但用谷歌搜索这个问题还没有抛出任何东西。

回答

1

这必须是分析器错误。您已经在foreach循环的开头声明了“@”,因此在“if”语句之前不需要它。

更改此:

@if (item.Children.Where("Visible").Any()) { <li><p>has children</p></li> } 

这样:

​​
+0

这是它到底。非常感谢Vinay。 – Alistair67