我目前使用DataAnnotations來驗證我的MVC 2應用程序。但是,我遇到了一個小問題。模型中的MVC驗證
我目前有一個類型爲User的對象,它具有許多屬性。所有這些都是必需的。
public class User
{
[Required(ErrorMessage = "Username is required")]
public string Username { get; set; }
[Required(ErrorMessage = "Password is required")]
public string Password { get; set; }
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
[Required(ErrorMessage = "First name is required")]
public string Firstname { get; set; }
[Required(ErrorMessage = "Last name is required")]
public string Lastname { get; set; }
}
註冊時,這些都使用模型綁定器映射,一切都很好。但是,在「編輯我的詳細信息」頁面上,只有名字,姓氏和電子郵件可以更新。 每當查看帖子回來和modelbinding應用我得到一個警報用戶名/密碼是必填字段。儘管在這一點上它不是必需的。我想過兩種方法來解決這個問題,我覺得這兩種方法都不適合(但可能是錯誤的)
1:創建一個自定義視圖模型。這樣可以正常工作,但數據註釋需要應用於此視圖模型,這意味着對模型和用戶對象進行重複驗證。
2:將所有字段包含在渲染視圖中並將其發回。這具有安全風險,看起來非常混亂,並且不能很好地適應複雜的視圖模型。
任何人都可以推薦這種情況的最佳做法嗎?
感謝您的鏈接@tpeczek。你的解決方案是一個很好的選擇,但是我已經決定在閱讀Jimmy Bogard在http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/06/29/上發表的文章後,去1:1 View:ViewModel設置。 how-we-do-mvc-view-models.aspx。 – WDuffy 2010-05-30 20:10:45