2

Sitecore アイテムの Mvc レンダリングで条件付きレンダリングを利用しようとしています。選択した条件に関係なく、デフォルトの条件を含め、実際に実行されるルールはありません。つまり、「コンポーネントを非表示」チェックボックスがオンになっているかどうかに関係なく、コンポーネントは常にレンダリングされます。これまでのトラブルシューティングでは、根本的な原因が明らかになりませんでした。以前にこの問題を経験した人はいますか?

追加情報:

  • サイトコア ログには、オーサリング プロセス中または Web ブラウザーからコンテンツ アイテムにアクセスするときにエラーが表示されません。
  • すぐに使える CustomizeRendering.Personalize プロセッサを使用しています。
  • Sitecore 6.6.0-Update 4 を使用しています。
  • 分析が有効になっています。
  • MVC が有効になっています。
  • ページがキャッシュされていないことを確認するために、条件付きレンダリング設定を変更する間に IIS のリセットを実行しました。
  • カスタム条件を試すとき、これらのカスタム条件の「プロセス」メソッドに Visual Studio でブレークポイントを設定しました。ブレークポイントはヒットしません。
  • 条件が悪かったかどうかをテストするために、ItemRules を継承するテンプレートを設定し、コントローラーで RuleList<>.Run(context) を明示的に呼び出しました。カスタム条件は、このテスト中にブレークポイントに達しました。
4

1 に答える 1

1

上で Trayek が述べたように、プレビュー モードが原因でした。

Sitecore アセンブリに飛び込むと、条件付きレンダリングを評価するメソッドを呼び出すために CustomizeRendering.Personalize.Process() が "Sitecore.Context.PageMode.IsNormal" を true に評価する必要があり、値が false に設定されていることがわかりました。

「Sitecore.Context.PageMode.IsPreview」は true です。

これは、条件付きレンダリングが起動しない理由を抽象的なレベルで説明しています。ログインしていなくても、サイトがデフォルトでプレビュー モードになっている理由はわかりませんが、それが条件付きレンダリングが評価されない直接の原因です。

于 2013-08-12T18:28:57.727 に答える