我遇到MVC3模型验证和DataAnnotations
的问题我有以下课程:
public class A
{
public C SomeProperty {get;set;}
}
public class B
{
[Required]
public C SomeProperty {get;set;}
}
public class C
{
[Required]
public string SomeSubProperty {get;set;}
}
这是因为某些对象可能需要C而其他对象不需要,但如果需要C,我也需要SomeSubProperty。
然而,当我在我的控制器中调用ModelState.IsValid时,如果未设置SomeSubProperty,则在将A和B都用作模型时将返回false。有什么方法可以产生这种行为吗?
答案 0 :(得分:2)
我通常不会将“域模型”与“视图模型”混合使用。
域模型反映了业务关系,它可能非常复杂,而视图模型假设非常扁平,并且没有深层次的依赖关系,因此您可以使用注释。
答案 1 :(得分:1)
看看AutoMapper。定义每个ViewModel及其特定要求,并在验证成功后将其映射到域模型以进行处理。