2017-09-01 68 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