Umbraco从宏脚本查询?

Sam*_*Sam 2 umbraco razor

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>
}
Run Code Online (Sandbox Code Playgroud)

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

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

想法?

Dou*_*low 6

两件事情:

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

例:

var subs = Model.Children.Where("Visible && NodeTypeAlias != @0", "Category");
Run Code Online (Sandbox Code Playgroud)

这里有一些Umbraco剃刀资源: