Umbraco从宏脚本查询?

时间:2013-04-11 16:45:36

标签: razor umbraco

Umbraco版本= 6.0.3

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

@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子句的“Visible”部分,它可以正常工作(显示标记为隐藏的内容除外)。我也可以通过删除“DocumentTypeAlias”来自行使用“Visible”,但随后会显示包括类别在内的所有可见内容。

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

想法?

1 个答案:

答案 0 :(得分:6)

两件事:

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

示例:

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

以下是一些Umbraco剃刀资源: