2

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>
}

where句の「可視」部分を取り除くと、正常に機能します(非表示としてマークされたコンテンツの表示を除く)。「DocumentTypeAlias」を削除して「Visible」を単独で使用することもできますが、カテゴリを含むすべての可視コンテンツが表示されます。

厳密に型指定されたクエリも使用してみ@Model.Content.Children.Where(x => x.IsVisible() && x.DocumentTypeAlias != "Category")ましたが、動的に型指定されたコンテンツでラムダ関数を使用できないというエラーが表示されます。

アイデア?

4

1 に答える 1

6

2つのこと:

  • このDynamicNode Where節はパラメーター構文を使用します。
  • NodeTypeAlias原稿種別の確認に使用します。

例:

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

Umbraco カミソリのリソースをいくつか紹介します。

于 2013-04-11T18:40:25.227 に答える