我有一个绑定到模型的视图,
当我在模型中的属性上使用内置Validator时,例如[EmailAddress],如果我写了一些无效的内容,则html标记会获得类input-validation-error。这允许我通过CSS显示红色。这很有效。
但是当我使用自定义验证器时,例如:
public class CONT_RU06Attribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
int value = int.Parse(value.ToString());
if (value < 2 || value > 6)
return new ValidationResult("Value must be between 2 and 6");
}
return ValidationResult.Success;
}
}
绑定的html标记没有获得输入验证错误类... 我该怎么办?
答案 0 :(得分:2)
您还需要实施 IClientValidatable
public class CONT_RU06Attribute : ValidationAttribute, IClientValidatable
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
int value = int.Parse(value.ToString());
if (value < 2 || value > 6)
return new ValidationResult("Value must be between 2 and 6");
}
return ValidationResult.Success;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType = "range";
yield return rule;
}
}