Umbraco从宏脚本查询?

问题描述:

Umbraco版本= 6.0.3Umbraco从宏脚本查询?

我想在宏脚本中做一些看似简单的东西。基本上,我想遍历所有可见的子内容,这不是一个类别:

@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函数的错误。

想法?

两件事情:

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

例子:

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

这里有几个一把umbraco剃刀资源:

+1

也刚刚发现在脚本文件中使用CurrentModel vs Model使其强制类型化,以便我可以执行lambdas – Sam 2013-04-11 18:58:51