Razor Umbraco从宏脚本查询?

Razor Umbraco从宏脚本查询?,razor,umbraco,Razor,Umbraco,Umbraco版本=6.0.3 我试图在一个宏脚本中做一些看似简单的事情。基本上,我想循环浏览所有不属于类别的可见子内容: @inherits umbraco.MacroEngines.DynamicNodeContext @{ var subs = Model.Children.Where("Visible && DocumentTypeAlias != \"Category\""); } <span>Count: @subs.Count()</span&g

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>
}
@继承umbraco.MacroEngines.dynamicontext
@{
var subs=Model.Children.Where(“Visible&&DocumentTypeAlias!=\“Category\”);
}
计数:@subs.Count()
@if(subs.Any())
{
    @foreach(子系统中的var子系统) {
  • }
}
如果我去掉where子句的“Visible”部分,它将正常工作(显示标记为hidden的内容除外)。我也可以通过删除“DocumentTypeAlias”单独使用“Visible”,但随后会显示包括类别在内的所有可见内容

我还尝试使用强类型查询
@Model.Content.Children.Where(x=>x.IsVisible()&&x.DocumentTypeAlias!=“Category”)
,但我遇到了一个错误,即无法对动态类型的内容使用lambda函数

想法?

两件事:

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

var subs = Model.Children.Where("Visible && NodeTypeAlias != @0", "Category");
以下是一些翁布拉科剃须刀资源:

  • 。这是一个由8部分组成的系列,内容丰富。不要因为版本参考而延迟,它对Umbraco 6仍然有效

在脚本文件中使用CurrentModel vs Model使其具有强类型,因此我可以执行lambdas