1

ASP.NET MVC 3/4で「ゼロ以外」の検証属性を追加する最良の方法は何ですか?

4

1 に答える 1

2

「ゼロよりも異なる」というエラーメッセージが表示されたカスタム検証属性を追加することをお勧めします(ここでの正しい英語の使用法はわかりません)。検証が必要なプロパティを持つモデルがあるとします。

public class YourModel
{
    [Required]
    [CheckZero] //custom attribute
    public int PropertyName { get; set; }   
    ...
}

基本クラスによって提供されるメソッドの1つCheckZeroAttributeから派生しValidationAttribute、オーバーライドするクラスを作成します。パラメータを使用してバージョンをIsValidオーバーライドすると、メソッド内で使用するためのより多くの情報が提供されます(パラメータを使用すると、モデルタイプ、モデルオブジェクトインスタンス、検証しているプロパティのわかりやすい表示名などの情報にアクセスできます)。IsValidValidationContextIsValidValidationContext

public class CheckZeroAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid (object value, ValidationContext validationContext)
    {
         //the error message
         string sErrorMessage = "Different from zero";
         //implement appropriate validation logic here
         ...
         if (...) { return new ValidationResult(sErrorMessage); }
         return ValidationResult.Success;
    }
}
于 2012-09-20T15:14:17.280 に答える