1

在 ASP.NET MVC 3/4 中添加“不同于零”验证属性的最佳方法是什么?

4

1 回答 1

2

我假设您想要添加带有错误消息“不同于零”的自定义验证属性不确定此处的英语用法是否正确)。假设您有一个具有需要验证的属性的模型:

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

创建一个CheckZeroAttribute派生自ValidationAttribute并覆盖IsValid基类提供的方法之一的类。覆盖IsValid带有参数的版本ValidationContext提供了在方法内部使用的更多信息IsValidValidationContext参数将使您能够访问模型类型、模型对象实例和您正在验证的属性的友好显示名称,以及其他信息)。

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 回答