エラーを追加するためにカスタムバリデーターから ModelState にアクセスするにはどうすればよいですか?
class CustomValidator : ValidationAttribute
{
public override bool IsValid(object value)
{
//access modelstate
}
}
エラーを追加するためにカスタムバリデーターから ModelState にアクセスするにはどうすればよいですか?
class CustomValidator : ValidationAttribute
{
public override bool IsValid(object value)
{
//access modelstate
}
}
このbool IsValid
メソッドは、false を返すときに ModelState にエラーを追加するだけです。ModelState を直接管理する必要はありません。
カスタム メッセージが必要な場合は、ctor で実行できます。
さらに制御したい場合は、オーバーライドできますValidationResult IsValid(
Object value,
ValidationContext validationContext
)
class CustomValidator : ValidationAttribute
{
//custom message in ctor
public CustomValidator() : base("My custom message") {}
public override bool IsValid(object value)
{
return true;
}
//return a overriden ValidationResult
protected override ValidationResult IsValid(
Object value,
ValidationContext validationContext) {
var message = "ohoh";
return new ValidationResult(message);
}
}