代码之家  ›  专栏  ›  技术社区  ›  TamerM

自定义个性化条件的NULL属性值

  •  1
  • TamerM  · 技术社区  · 9 年前

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

    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 属性应该填充我创建个性化条件时选择的日期时间,但对我来说它总是空的。

    我错过了什么?

    注意:这是Sitecore 8.1

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jim Noellsch    9 年前

    完全清除个性化条件并重新构建。

    个性化以XML形式存储在 <condition> 元素的属性名与存储变量名相同。如果重构规则文本中的底层存储变量,这是有问题的——它们不会保持同步,并且在规则运行时不会被映射。