2014-02-21 134 views
24

在允許發佈表單之前,有沒有使用數據註釋來比較兩個表單域(例如,確認電子郵件地址)是否相同的方法?DataAnnotation比較兩個屬性

例如。正則表達式數據註釋是否可以使用匹配函數引用ViewModel中的另一個屬性?

回答

38

使用CompareAttribute

public string EmailAddress {get; set;} 

[CompareAttribute("EmailAddress", ErrorMessage = "Emails mismatch")] 
public string VerifiedEmailAddress { get; set; } 
+1

in .net core it's [Compare(「EmailAddress」,ErrorMessage =「Emails mismatch」)] – kyle

11

作爲一個possibe選項自我驗證

與方法驗證,在那裏你可以把你的驗證代碼實現一個接口IValidatableObject

public class TestModel : IValidatableObject 
{ 
    public string Email{ get; set; } 
    public string ConfirmEmail { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (Email != ConfirmEmail) 
     { 
      yield return new ValidationResult("Emails mismatch", new [] { "ConfirmEmail" }); 
     } 
    } 
} 

請注意:這只是服務器端驗證。

相關問題