【问题标题】:Conditional validation groups in MVC3MVC3 中的条件验证组
【发布时间】:2011-08-01 14:22:14
【问题描述】:
我有一个实体框架生成的模型。最初创建模型时,我只需要一些属性,但之后我需要更多。是否有任何验证组或条件验证属性的概念可以帮助我?
我尝试编写一个自定义条件验证属性,该属性只在其参数中采用另一个验证属性并封装其他验证属性,但我收到编译器错误,提示“属性参数必须是常量表达式、typeof 表达式或数组创建表达式属性参数类型”
知道如何做到这一点吗?
【问题讨论】:
标签:
asp.net-mvc-3
entity-framework-4.1
【解决方案1】:
我有一个实体框架生成的模型
这很好,但控制器不应该从视图中传递和获取。为了将理论上应该可以在不同应用程序之间重用的域实体与这些实体在给定视图上呈现的方式分离,您可以使用视图模型。这些是专门为满足给定视图的要求而设计的类。因此,您可以有一个 CreateFooViewModel 和 UpdateFooViewModel 都代表一些域模型,但当然具有不同的验证规则(因为您的视图之间的验证规则不同)以及不同的格式规则和属性选择。为了简化视图模型和域模型之间的映射,您可以使用AutoMapper。