2013-03-27 60 views
1

如何将条件呈现规则应用于特定呈现的所有实例(在MVC应用程序中,如果相关的话)?将条件呈现应用于特定呈现的所有实例

根据我发现的文档,应该有一个“个性化”部分,但即使在“应用程序选项”中启用它,它也不会出现在渲染属性中。

我读过全球条件渲染规则不支持MVC,但我认为这意味着规则不能应用于所有渲染,而不仅仅是所有渲染的特定类型。

有什么想法?

回答

4

我还将在JetBrains DotPeek

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

我可能会看重写GetGlobalRules方法来执行你的自定义逻辑来看看下面的管道,也许从Sitecore的加载条件的自定义设置,并将它们添加到ruleList,所以他们也得到评估。

+0

实际上,我认为这种策略对我的要求最适合 – 2013-03-27 21:04:00

3

Sitecore的MVC解决方案不支持全球条件呈现规则,这是有条件的渲染的一种形式,适用同一套规则,所有呈现的组件,你可以申请有条件呈现规则的个人表现组件,但您无法像使用Web窗体解决方案一样定义适用于所有表示组件的条件呈现规则。“Source: John West

所以你需要使用不同的策略:

如果我理解正确此,有条件的呈现规则是在项目级别配置。因此,这意味着必须在每个项目上设置一个全球规则。

您可以通过使用模板继承和Standard Values自动完成:

  • 创建标准值的基础模板。
  • 在标准值项目的展示详细信息中配置呈现(这是您设置条件呈现规则的位置)。
  • 让所有需要此条件呈现规则的模板都从基本模板继承。
  • 关于标准值的演示细节也将被继承。

此解决方案唯一棘手的问题是,您应该在创建项目之前设置所有模板和标准值。 理论上这应该不是问题,但我经历了一些奇怪的症状,如果您在创建项目后更改它们,标准值演示细节的继承将无法正常工作。

+2

根据SitecoreJohn提供的全球规则,但我没有亲自使用过它们......最后一段http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010 /11/Sitecore-Rules-Engine-and-Conditional-Rendering.aspx – jammykam 2013-03-27 14:34:44

+1

谢谢你!我相应地修正了我的答案。 – 2013-03-27 14:40:29

+0

我在第二步“在标准值项目的展示详细信息中配置呈现(这是您设置条件呈现规则的位置)”。我在个性化字段中只有Persona Visitor是人类复选框。你可以给出一个详细的步骤,我会在哪里创建条件渲染规则? – Pinoy2015 2014-01-15 15:36:26