自定义Personalization条件的NULL属性值

时间:2016-02-09 11:04:05

标签: sitecore rule-engine sitecore8 personalization

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

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属性应填充我创建Personalization Condition时选择的日期时间,但对我来说它总是为NULL。

我错过了什么?

注意:这是Sitecore 8.1

1 个答案:

答案 0 :(得分:2)

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

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