Umbraco 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 (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> }

这也不起作用。

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

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

更改此内容:

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

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

相关内容

  • 没有找到相关文章

最新更新