Umbraco从宏脚本查询?

iid 发布于 2019-03-09 razor 最后更新 2019-03-09 14:41 3 浏览

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”来自行使用“可见”,但会显示所有可见的内容,包括类别。 我也试过使用强类型查询@Model.Content.Children.Where(x => x.IsVisible() && x.DocumentTypeAlias != "Category"),但是我得到一个关于不能使用带动态类型内容的lambda函数的错误。 想法?
已邀请:

somnis

赞同来自:

两件事情:

  • DynamicNode Where子句使用参数语法。
  • 使用NodeTypeAlias检查文档类型。
例:
var subs = Model.Children.Where("Visible && NodeTypeAlias != @0", "Category");
以下是一些Umbraco剃刀资源: