2

我正在尝试在我的 Sitecore 项目中对 Mvc 渲染使用条件渲染。无论我选择什么条件,都不会真正触发任何规则,包括默认条件。换句话说,无论是否选中“隐藏组件”复选框,组件都会呈现。到目前为止,我的故障排除还没有揭示根本原因。有没有人遇到过这个问题?

附加信息:

  • 在创作过程中或从我的 Web 浏览器访问内容项时,sitecore 日志不会显示任何错误。
  • 我正在使用开箱即用的 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”是真的。

这在抽象层面上解释了为什么条件渲染没有触发。我不确定为什么我的网站默认为预览模式,即使我没有登录,但这是没有评估条件渲染的直接原因。

于 2013-08-12T18:28:57.727 回答