我使用的是asp.net MVC3,我對這項技術很陌生。模型綁定和驗證錯誤
我的模型的設計方式是,如果數據無效,屬性將拋出驗證錯誤。在這種情況下,屬性不會設置無效數據。
當我重新顯示我的編輯視圖時,顯示驗證錯誤消息;但是用戶以前輸入的值已消失,因爲它綁定的模型只包含舊有效數據。
例如,假設我有一個Person
類,並且Name
屬性不能爲空或空字符串,否則會引發驗證異常並阻止設置該屬性。現在說用戶從Name
屬性中刪除值並嘗試從網絡保存Person
。驗證異常將被拋出並正確處理,以將錯誤添加到ModelState
,以便將其顯示在屏幕上;然而,Name
的舊值會重新顯示,因爲無效的空字符串從未將它置入屬性中。
我不知道如何解決這個問題,任何關於這個問題的建議將不勝感激。
我曾多次與我的團隊進行過這次對話。我同意你允許無效數據進入模型,但他們沒有。如果我們已經實現了您的建議設計,那麼在使用這些模型的其他應用程序中驗證會更容易實現。儘管這種設計可以確保我們的模型對象大部分時間都是有效的,但它會導致問題,因爲UI和它所綁定的底層模型不同步。所以,我們有兩個驗證級別:執行的UI驗證和模型驗證。所以,我將不得不找到「不容易」的解決方案。 – Frinavale