具有多个ViewModel的MVC 3 ModelState.IsValid

我们假设我有一个由3个其他ViewModel组成的ViewModel。一个包含项目列表,另一个包含具有[Required]属性的类的实例,然后包含另一个其他项的列表。 如果用户从两个列表中的任何一个列表中选择一个项目,我不希望第二个对象上的[Required]属性导致ModelState无效,因为如果用户选择其中一个项目,则不会需要使用[Required]属性填写表单。 我怎么解决这个问题?     
已邀请:
一种选择是使用ModelState.Remove(“KeyName”)删除“违规”验证。我有完全相同的方案,并已实现以下内容:
var MyModel = _someService.GetModelById(id);
TryUpdateModel(MyModel);
ModelState.Remove("MyModel.OffendingField");
if (ModelState.IsValid)
{
    ...
}
尽管如此,确保在代码的其他区域不会产生连锁反应非常重要。     

要回复问题请先登录注册