我目前使用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