1

我需要为个性化创建自定义条件以检查特定时间是否已过(无日期)。所以我创建了如下新类:

public class TimePassedCondition<T> : Sitecore.Rules.Conditions.OperatorCondition<T> where T : RuleContext
{
     public string SelectedTime { get; set; }

     protected override bool Execute(T ruleContext)
     {
        //TODO: Add Logic
        return false;
    }
}

然后我在中添加了一个新的条件定义

Sitecore/System/Settings/Rules/Elements/Date/ 我给了它以下文本: when [SelectedTime,DateTime,,the time] has passed 我还将新的个性化条件和操作添加到所需的组件中。因此,当我调试并打开页面时,会遇到断点。

但是,我的问题是,根据我在几篇文章中阅读的内容,该SelectedTime属性应填充我创建个性化条件时选择的日期时间,但对我来说始终为 NULL。

我错过了什么?

注意:这是 Sitecore 8.1

4

1 回答 1

2

彻底清除个性化条件并重建它们。

个性化作为 XML 存储在一个<condition>元素中,其属性名称反映了您的存储变量名称。如果您重构规则文本中的底层存储变量,这将是有问题的 - 它们不会保持同步并且在规则运行时不会被映射。

于 2016-02-10T02:35:11.560 回答