1

特定のレンダリングのすべてのインスタンスに条件付きレンダリングルールを適用するにはどうすればよいですか(MVCアプリケーションで、関連する場合)?

私が見つけたドキュメントに基づくと、「パーソナライズ」セクションがあるはずですが、「アプリケーションオプション」で有効にしたにもかかわらず、レンダリングのプロパティに表示されません。

グローバル条件付きレンダリングルールはMVCでサポートされていないことを読みましたが、特定のタイプのすべてのレンダリングだけでなく、すべてのレンダリングにルールを適用できないことを意味していると思いました。

何かご意見は?

4

2 に答える 2

4

JetBrainsDotPeekの次のパイプラインも見てみましょう

<insertRenderings>
  <processor type="Sitecore.Pipelines.InsertRenderings.Processors.EvaluateConditions, Sitecore.Kernel"/>
</insertRenderings>

私はおそらくGetGlobalRules、カスタムロジックを実行するためにメソッドをオーバーライドすることを検討します。おそらく、Sitecoreからカスタムの条件セットをロードし、それらを追加して、ruleListそれらも評価されるようにします。

于 2013-03-27T15:00:49.903 に答える
3

SitecoreMVCソリューションは、すべてのプレゼンテーションコンポーネントに同じルールセットを適用する条件付きレンダリングの形式であるグローバル条件付きレンダリングルールをサポートしていません。個々のプレゼンテーションコンポーネントに条件付きレンダリングルールを適用できますが、次のような条件付きレンダリングルールを定義することはできません。 Webフォームソリューションでできるように、すべてのプレゼンテーションコンポーネントに適用します。」 出典:ジョンウェスト

したがって、別の戦術を使用する必要があります。

これを正しく理解していれば、条件付きレンダリングルールはアイテムレベルで構成されています。つまり、すべてのアイテムにグローバルルールを設定する必要があります。

テンプレートの継承とStandard Values:を使用して、これを自動化できます。

  • 標準値を使用して基本テンプレートを作成します。
  • 標準値アイテムのプレゼンテーションの詳細でレンダリングを構成します(ここで条件付きレンダリングルールを設定します)。
  • この条件付きレンダリングルールを必要とするすべてのテンプレートをベーステンプレートから継承します。
  • 標準値の表示の詳細も継承されます。

このソリューションで唯一注意が必要なのは、アイテムを作成する前に、すべてのテンプレートと標準値を設定する必要があることです。理論的にはこれは問題ではありませんが、アイテムの作成後に変更すると、標準値の表示の詳細の継承が正しく機能しないという奇妙な症状が発生しました。

于 2013-03-27T14:25:23.577 に答える