【问题标题】:Umbraco Querying from Macro Script?Umbraco 从宏脚本查询?
【发布时间】:2013-04-11 16:45:36
【问题描述】:

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

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

想法?

【问题讨论】:

    标签: razor umbraco


    【解决方案1】:

    两件事:

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

    例子:

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

    这里有一些 Umbraco 剃须刀资源:

    【讨论】:

    • 也刚刚发现在脚本文件中使用 CurrentModel vs Model 使其具有强类型,以便我可以执行 lambdas
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多