2016-08-12 6 views
2

Я создал новое действие для своей формы WFFM, которая наследуется от класса WffmCheckAction, который в основном выполняет проверку на стороне сервера, если проверка на стороне клиента обойдена. Пользовательский класс, который я создал для этого представить действие выглядит следующим образом:Веб-форма для маркетологов Пользовательское действие Отправить сообщение об ошибке

public class EmailValidation : WffmCheckAction 
{ 
    public override void Execute(Sitecore.Data.ID formid, IEnumerable<ControlResult> fields, ActionCallContext actionCallContext = null) 
    { 
     ControlResult emailField = fields.FirstOrDefault<ControlResult>(f => f.FieldName.ToLowerInvariant().Trim().Equals(Constant.Cms.WFFM.Fields.Email.ToLowerInvariant())); 

     if (emailField == null) //field not found. 
      return; 

     var emailVal = emailField.Value; 
     if (emailVal != null && !string.IsNullOrEmpty(emailVal.ToString())) 
     { 
      if (!IsValidEmail(emailVal.ToString())) 
      { 
       throw new ArgumentException("Invalid Email Address"); 
      } 
     } 
    } 

    bool IsValidEmail(string email) 
    { 
     try 
     { 
      var addr = new System.Net.Mail.MailAddress(email); 
      return true; 
     } 
     catch 
     { 
      return false; 
     } 
    } 
} 

На Sitecore 6.5, если электронная почта не является действительной (IsValidEmail вернуть ложь), сообщение об ошибке «Неправильный адрес электронной почты» будет отображаться в форме. После обновления до sitecore 8.1 с использованием веб-формы для маркетологов 8.1 rev 160523, Вместо этого я получу сообщение об ошибке «Сохранить действие по умолчанию», которое в моем случае «Мы испытывали технические трудности при обработке вашего запроса. Возможно, ваши данные были неверными спасены «. Я пробовал обновить сообщение об ошибке в верификации формы enter image description here

но я все еще получаю сообщение об ошибке по умолчанию. Я подозреваю, что с обновлением они изменили поведение, и, поскольку я выбрал ArgumentException, WFFM рассматривает его как ошибку и отображает сообщение по умолчанию. Как отобразить пользовательское сообщение с помощью пользовательского действия «Отправить»?

ответ

2

Это подтверждено как ошибка Sitecore. Номер ссылки для патча - 78434.