【发布时间】:2010-04-05 21:40:19
【问题描述】:
我目前正在构建一个需要支持两个不同版本的表单。每个版本可能使用不同的表单域子集。我必须这样做以支持两个不同的客户端,但我不希望两者都有完全不同的控制器操作。
所以,我试图想出一种方法来使用具有验证属性的强类型模型,但其中一些属性是有条件的。
我能想到的一些方法类似于史蒂夫·桑德森的partial validation 方法。
我会根据哪个版本的表单处于活动状态来清除过滤器 OnActionExecuting 中的模型错误。
我正在考虑的另一种方法是使用类似的方法将模型分解为多个部分
class FormModel
{
public Form1 Form1Model {get; set;}
public Form2 FormModel {get; set;}
}
然后找到一些方法来根据版本验证适当的属性。模型上还有一些共同属性适用于两者,这些属性始终会得到验证。
有人对此有好的建议吗?
【问题讨论】:
标签: asp.net-mvc controller models data-annotations