從昨天開始,我有此問題。 在我的用戶模型中,我有一個[NotMapped],稱爲「ConfirmPassword」。我不把它保存在數據庫上,但是我在創建表單上將它用作總是爲新用戶驗證數據輸入。所需的ModelValidation僅適用於新對象ASP.NET MVC
因爲比,沒關係。問題出在我的[HttpPost]編輯操作上。我應該可以編輯某些用戶的數據而不用鍵入並確認密碼。如果我想更改密碼,我同時使用Password和ConfirmPassword作爲確認舊密碼的方法並使用新密碼。但是,如果我不做,我就把它們留空。
我都已經使用下面的代碼,以便能夠通過ModelState.IsValid()條件和它的工作:
ModelState["Password"].Errors.Clear();
ModelState["ConfirmPassword"].Errors.Clear();
但是,就在db.SaveChanges()之前,爲用戶的用戶視圖模型被認爲是,它有兩個屬性空和我:
Property: ConfirmPassword Error: The field ConfirmPassword is invalid.
的問題是:我怎麼能跳過德必模型驗證時,我想更新對象?
我已經閱讀有關自定義ModelValidations帶班延長ValidationAttribute和 DataAnnotationsModelValidator,但我沒有這樣做是正確的。
有什麼想法?我如何創建一個自定義模型驗證來檢查UserId屬性是否爲null。這是一個很好的方法來檢查我是否在創建或編輯操作。
感謝, 聖保羅
非常感謝Shyju!我認爲這可以節省我:)我的用戶類已經從MembershipUser繼承,但我可以創建一個從用戶繼承的新類。謝謝 – paulofabiano 2012-08-09 13:26:21
但Shyju,使用這個解決方案,我必須有一個編輯視圖爲每個類,對不對? – paulofabiano 2012-08-09 13:33:58
你的意思是ViewModel?如果你想要創建和編輯單獨的驗證,你應該有獨立的ViewModels。但是你可以利用繼承來保持乾爽 – Shyju 2012-08-09 13:38:01