自定义验证属性

在验证一些非通用数据验证规则时,例如确保需要字段或某些值范围,但它们特定于你的业务逻辑,那么你可以创建自己的自定义验证器。要创建自定义验证属性,你只需要 inherit ValidationAttribute 类和 override 它的 IsValid 方法。该 IsValid 方法采用两个参数,第一是命名为 value 一个 object 和第二个是一个命名为 validationContext ValidationContext objectValue 指的是你的自定义验证器要验证的字段的实际值。

假设你要通过 Custom Validator 验证 Email

public class MyCustomValidator : ValidationAttribute
{
    private static string myEmail= "admin@dotnetfiddle.net";

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        string Email = value.ToString();
        if(myEmail.Equals(Email))
            return new ValidationResult("Email Already Exist");
        return ValidationResult.Success;
    }
}

public class SampleViewModel
{
    [MyCustomValidator]
    [Required]
    public string Email { get; set; }

    public string Name { get; set; }
}

Here is its DotNetFiddle Demo