WFFMCheckActionクラスを継承するWFFMフォームの新しい送信アクションが作成されました。これは、クライアント側の検証がバイパスされた場合に基本的にサーバー側の検証を行います。これはアクションを提出するために私が作成したカスタムクラスは以下のようになります。サイトコア6.5でマーケティング担当者用Webフォームカスタム送信アクションエラーメッセージ
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;
}
}
}
、メールが有効でない場合(falseを返すIsValidEmail)、エラーメッセージ「無効なメールアドレスが」形式で表示されます。 Web Form for Marketingを使用してsitecore 8.1にアップグレードした後に、Rev 8000523、 私の場合は、「あなたの要求を処理する際に技術的な問題が発生しました。保存されました。 フォームベリフィケーションのエラーメッセージを更新しようとしました
しかし、まだデフォルトのエラーメッセージが表示されています。 アップグレードでは動作が変更されていると思われますが、ArgumentExceptionがスローされたため、WFFMはエラーとして扱い、代わりにデフォルトのメッセージを表示します。 カスタム送信アクションを使用してカスタムメッセージを表示するにはどうすればよいですか?