ASP.NET MVC 3/4で「ゼロ以外」の検証属性を追加する最良の方法は何ですか?
1 に答える
2
「ゼロよりも異なる」というエラーメッセージが表示されたカスタム検証属性を追加することをお勧めします(ここでの正しい英語の使用法はわかりません)。検証が必要なプロパティを持つモデルがあるとします。
public class YourModel
{
[Required]
[CheckZero] //custom attribute
public int PropertyName { get; set; }
...
}
基本クラスによって提供されるメソッドの1つCheckZeroAttribute
から派生しValidationAttribute
、オーバーライドするクラスを作成します。パラメータを使用してバージョンをIsValid
オーバーライドすると、メソッド内で使用するためのより多くの情報が提供されます(パラメータを使用すると、モデルタイプ、モデルオブジェクトインスタンス、検証しているプロパティのわかりやすい表示名などの情報にアクセスできます)。IsValid
ValidationContext
IsValid
ValidationContext
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 に答える