Model view controller 条件渲染在Sitecore 6.6中不起作用

Model view controller 条件渲染在Sitecore 6.6中不起作用,model-view-controller,sitecore,Model View Controller,Sitecore,我正在尝试在我的Sitecore项目中的Mvc渲染上使用条件渲染。无论我选择的条件是什么,实际上都不会触发任何规则,包括默认条件。换句话说,无论是否选中“隐藏组件”复选框,组件始终呈现。到目前为止,我的故障排除还没有揭示根本原因。以前有人遇到过这个问题吗 其他信息: sitecore日志在创作过程中或从“我的web浏览器”访问内容项目时不会显示任何错误 我正在使用现成的定制。个性化处理器 我正在使用Sitecore 6.6.0-Update 4 分析功能已启用 MVC已启用 我在更改条件呈现设

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

其他信息:

  • sitecore日志在创作过程中或从“我的web浏览器”访问内容项目时不会显示任何错误
  • 我正在使用现成的定制。个性化处理器
  • 我正在使用Sitecore 6.6.0-Update 4
  • 分析功能已启用
  • MVC已启用
  • 我在更改条件呈现设置之间执行了IIS重置,以确保页面未被缓存
  • 在尝试自定义条件时,我在VisualStudio中对这些自定义条件的“process”方法设置了断点。断点从未命中
  • 为了测试我的条件是否糟糕,我设置了一个继承ItemRules的模板,并在控制器中显式调用RuleList.Run(上下文)。我的自定义条件在此测试期间达到了它们的断点

如上所述,预览模式是罪魁祸首

深入研究Sitecore程序集,发现CustomizerOrdering.Personalize.Process()需要“Sitecore.Context.PageMode.IsNormal”才能计算为true,以便调用计算条件渲染的方法,而my值设置为false

“Sitecore.Context.PageMode.IsPreview”为true


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

组件是否有可能启用缓存?规则是在单个组件上设置的还是全局规则?是否使用预览模式?我记得有些东西在预览模式下不工作,但那可能是目标。。。以防万一,您可以使用sc_模式附加您的URL=normal@Jake当您登录到Sitecore并使用相同的浏览器浏览站点时,您也将登录到该站点-即使没有sc_mode=preview,它也可能正在进行预览。sc_mode=normal会解决这个问题(并将Sitecore.Context.PageMode.IsNormal设置为true)。我同意Trayek的观点,如果您登录到Sitecore并在同一浏览器中查看该网站,有时会发生奇怪的事情。我总是在不同于用于登录桌面的浏览器/会话中测试演示文稿。您是否正在使用页面编辑器中的“个性化组件”设置条件呈现?尝试使用“where true”规则(可用规则列表中的最后一个)。请记住,这些条件是从顶部开始计算的,因此隐藏组件条件之前的任何规则都可能阻止它生效。