2013-05-31 60 views
0

我正在使用DataAnotation進行驗證,我需要在某些情況下禁用它。對插入和編輯的不同驗證

F.E.在創建我需要用戶插入密碼和確認,但編輯它可以保持空白,不會改變。

我有這樣的模式:關於修改密碼需要

 [Required] 
     [DataType(DataType.Password)] 
     public string Password { get; set; } 

     [DisplayName("Re-enter Password")] 
     [Compare("Password", ErrorMessage = "The password and confirmation do not match.")] 
     public string PasswordControl { get; set; } 

足夠多vould是禁用。

回答

1

AFAIK,有兩種方法,要麼工作。

  1. 使用不同的模型進行編輯和插入。我更喜歡並在我的應用程序中使用這個。這很容易和未來的證明(編輯和插入模型和規則可能是完全不同的)。

  2. 自定義ValidationAttribute並覆蓋IsValid方法。使用您的模型的一些背景,如IsEdit字段。它可以從MVC3開始使用。請參閱本文「型號驗證改進」部分http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx