【发布时间】:2010-05-30 13:52:54
【问题描述】:
我目前正在使用 DataAnnotations 来验证我的 MVC 2 应用程序。但是,我遇到了一个小问题。
我目前有一个 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; }
}
在注册时,这些都使用模型绑定器进行映射,一切正常。但是,在“编辑我的详细信息”页面上,只能更新名字、姓氏和电子邮件。 每当视图回发并应用模型绑定时,我都会收到警告用户名/密码是必填字段。即使此时不需要。我想了两种方法来解决这个问题,我觉得这两种方法都不合适(但可能是错误的)
1:创建自定义视图模型。这可以正常工作,但需要将数据注释应用于此视图模型,这意味着对模型和用户对象进行重复验证。
2:在渲染视图中包含所有字段并将它们发回。这存在安全风险,看起来非常混乱,并且不能很好地扩展到复杂的视图模型。
任何人都可以针对这种情况推荐最佳做法吗?
【问题讨论】:
标签: asp.net-mvc-2 data-annotations