12

RegularExpressionAttribute から継承されていないが、クライアント検証で使用できる電子メール アドレスの MVC2 用のカスタム検証属性を作成したいと考えています。誰かが私を正しい方向に向けることができますか?

私はこれと同じくらい簡単なことを試しました:

[AttributeUsage( AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false )]
public class EmailAddressAttribute : RegularExpressionAttribute
{
    public EmailAddressAttribute( )
        : base( Validation.EmailAddressRegex ) { }
}

しかし、それはクライアントにはうまくいかないようです。ただし、RegularExpression(Validation.EmailAddressRegex)] を使用すると、正常に動作するようです。

4

4 に答える 4

3

CustomValidationAttribute クラスの MSDN ページには、いくつかの例が掲載されています。Phil Haacked の投稿は古くなっています。

于 2011-03-30T18:34:33.207 に答える
0

この記事のユニバーサル依存プロパティ バリデーターを見てください。

于 2011-08-02T14:15:00.460 に答える
-2

データ注釈を使用してみましたか?

これは、System.ComponentModel.DataAnnotations を使用した私の Annotations プロジェクトです。

public class IsEmailAddressAttribute : ValidationAttribute
{
  public override bool IsValid(object value)
  {
    //do some checking on 'value' here
    return true;
  }
}

これは私のモデルプロジェクトにあります

namespace Models
{
    public class ContactFormViewModel : ValidationAttributes
    {
        [Required(ErrorMessage = "Please provide a short message")]
        public string Message { get; set; }
    }
}

これは私のコントローラーです

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ContactUs(ContactFormViewModel formViewModel)
{
  if (ModelState.IsValid)
  {
    RedirectToAction("ContactSuccess");
  }

  return View(formViewModel);
}

プロジェクトを取得してコンパイルする必要があるため、DataAnnotations をグーグルで検索する必要があります。私はそれをしたいが、長い間ここから出る必要がある.

お役に立てれば。

編集

これをクイックグーグルとして見つけました。

于 2010-03-05T04:39:31.783 に答える