如何从自定义验证器访问ModelState以添加错误?
class CustomValidator : ValidationAttribute
{
public override bool IsValid(object value)
{
//access modelstate
}
}
答案 0 :(得分:3)
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);
}
}