0

我对 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,但如果需要 C,我希望 SomeSubProperty 也需要。

但是,当我在控制器中调用 ModelState.IsValid 时,如果 SomeSubProperty 未设置,则在同时使用 A 和 B 作为模型时它会返回 false。有什么办法可以产生这种行为?

4

2 回答 2

2

我通常不会将“域模型”与“视图模型”混合在一起。

领域模型反映了业务关系,它可能非常复杂,而视图模型假设非常扁平并且没有深层次的依赖关系,因此您可以使用注释。

于 2012-11-08T22:57:14.097 回答
1

看看AutoMapper。定义具有特定要求的每个 ViewModel,并在验证成功后将其映射到域模型以进行处理。

于 2012-11-08T23:33:57.087 回答