Umbraco Razor 获得 children of a child
Umbraco Razor get children of a child
我正在尝试使用我不熟悉的剃刀构建一个带有子菜单的菜单,到目前为止,我可以通过以下方式获得顶层元素:
@{ 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> }
我正在尝试使用我不熟悉的剃刀构建一个带有子菜单的菜单,到目前为止,我可以通过以下方式获得顶层元素:
@{ 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> }