Sitecore 8.2 WFFM:创建一个自定义字段验证器,该验证器有条件地设置错误消息

时间:2018-08-08 19:34:29

标签: validation sitecore sitecore8 customvalidator web-forms-for-marketers

我需要在我的电子邮件字段中添加验证,以检查输入的电子邮件是否在列入黑名单的域中,并且需要显示针对不同域的自定义消息(例如,对于gmail.com,它会显示“个人电子邮件为不允许。”对于.gov,它会说“不允许使用政府电子邮件,诸如此类)。

我已经在Sitecore中创建了BaseValidator项并将其链接到我的自定义代码:

enter image description here

namespace Example.Library.WebForms.Validators
{
    class EmailValidation : FormCustomValidator
    {
        protected override bool OnServerValidate(string value)
        {
            var blacklistFolder = Sitecore.Context.Database.GetItem(SiteConstants.BlacklistFolder);
            var domains = blacklistFolder.Axes.GetDescendants().Select(x => x.GlassCast<IRestricted_Domain>());

            foreach (var dom in domains)
            {
                var domain = dom.Domain;
                if (value.ToLower().EndsWith(domain.ToLower()))
                {
                    // set error message to custom error message
                    var typeItem = Sitecore.Context.Database.GetItem(dom.Type);
                    if (typeItem == null) return false;
                    var type = typeItem.GlassCast<IRestricted_Domain_Type>();
                    var error = type.Error_Message;

                    // now how do I set the message that displays for the user to this variable?

                    return false;
                }
            }

            return true;
        }
    }
}

下一步是什么,如何设置用户看到的错误消息?

0 个答案:

没有答案