在我的业务领域中,“用户”实体与单个“Person”实体关联(因此User实例包含安全性/登录信息,但Person实体包含人的人体联系信息)。复杂表单验证(禁用对子对象属性的验证)
我的视图模型是这样的:
class UserViewModel {
[Required]
public String UserName { get; set; }
public Int64 PersonId { get; set; }
public PersonViewModel Person { get; set; }
public Boolean PersonViewModelIsNew { get; set; }
}
class PersonViewModel {
[Required]
public String FirstName;
[Required]
public String LastName;
// etc
}
的网页允许访问者编辑用户,以使得它们可在一个全新的Person实例,或现有人员代替用户的个人信息从数据库中拉出来。
附件是以下形式的屏幕截图:
我们的想法是,如果“另一个雇员”单选按钮(映射到“UserViewModel.PersonViewModelIsNew”属性)被选中,那么的验证“UserViewModel.Person”成员将被禁用。
但是ASP.NET MVC没有像WebForms这样的验证组的概念,所以我该如何控制验证呢?