2

Umbraco 版本 = 6.0.3

我正在尝试在宏脚本中做一些看似简单的事情。基本上,我想遍历所有不是类别的可见子内容:

@inherits umbraco.MacroEngines.DynamicNodeContext

@{
var subs = Model.Children.Where("Visible && DocumentTypeAlias != \"Category\"");
}
<span>Count: @subs.Count()</span>
@if (subs.Any())
{
    <ul>            
        @foreach (var sub in subs)
        {
            <li>
                <a href="@sub.Url">@sub.Name</a>
            </li>
        }
    </ul>
}

如果我取出 where 子句的“可见”部分,它可以正常工作(显示标记为隐藏的内容除外)。我也可以通过删除“DocumentTypeAlias”单独使用“Visible”,但随后会显示包括类别在内的所有可见内容。

我也尝试使用强类型查询@Model.Content.Children.Where(x => x.IsVisible() && x.DocumentTypeAlias != "Category"),但我收到一个错误,即无法将 lambda 函数与动态类型的内容一起使用。

想法?

4

1 回答 1

6

两件事情:

  • DynamicNode Where子句使用参数语法。
  • 用于NodeTypeAlias检查文档类型。

例子:

var subs = Model.Children.Where("Visible && NodeTypeAlias != @0", "Category");

以下是一些 Umbraco 剃须刀资源:

于 2013-04-11T18:40:25.227 回答