自定義驗證屬性

在驗證一些非通用資料驗證規則時,例如確保需要欄位或某些值範圍,但它們特定於你的業務邏輯,那麼你可以建立自己的自定義驗證器。要建立自定義驗證屬性,你只需要 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