Razor 翁布拉科剃须刀有孩子的孩子

Razor 翁布拉科剃须刀有孩子的孩子,razor,umbraco7,Razor,Umbraco7,我正在尝试使用razor构建一个包含子菜单的菜单,我不太熟悉,到目前为止,我可以使用以下工具获取顶级元素: @{ var selection = CurrentPage.Site().Children.Where("Visible"); } 然后: @foreach (var item in selection) { <li class="@(item.IsAncestorOrSelf(CurrentPage) ? "current" : null)"> &

我正在尝试使用razor构建一个包含子菜单的菜单,我不太熟悉,到目前为止,我可以使用以下工具获取顶级元素:

@{ 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(选择中的变量项)
{
  • }
    但是,如果我尝试测试下一个级别是否存在:

    @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> } 
    
    }
    
    @foreach(选择中的变量项)
    {
    
  • @if(item.Children.Where(“可见”).Any(){
  • 有子项

  • } }
    我犯了一个错误

    @if (item.Descendants().Where("Visible").Any()) { <li><p>has children</p></li> }
    
    @if(item.subjections().Where(“可见”).Any(){
  • 有子项

  • }
  • 这也不行


    有人能告诉我我做错了什么吗?我认为这是可能的,但谷歌搜索问题还没有抛出任何东西。

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

    更改此项:

    @if (item.Children.Where("Visible").Any()) { <li><p>has children</p></li> }
    
    @if(item.Children.Where(“可见”).Any(){
  • 有子项

  • }
  • 为此:

    if (item.Children.Where("Visible").Any()) { <li><p>has children</p></li> }
    
    if(item.Children.Where(“可见”).Any(){
  • 有子项

  • }