我需要为个性化创建自定义条件以检查特定时间是否已过去(没有日期)。 所以我创建了新类如下:
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
答案 0 :(得分:2)
彻底清除个性化条件并重建它们。
个性化以XML格式存储在<condition>
元素中,其属性名称反映了您的存储变量名称。如果您在规则文本中重构底层存储变量,则会出现问题 - 它们不会保持同步,并且在规则运行时不会映射。