0

我对表单中字段的验证要求包含在外部表中,因此可以在不更改和重建代码的情况下更新它们。

我有大约 100 个字段,其中混合了验证要求 - 范围、必需、正则表达式和对其他字段的依赖。一个例子是日期范围验证。出生日期字段需要一个介于当前日期的 -10 年到 -50 年之间的日期范围。

我已经阅读了该主题,但尚未确定完整解决方案的模式。

我正在使用带有 MVC 3 和实体框架的 Visual Studio 2010。

对此的任何帮助将不胜感激。提前致谢。

4

1 回答 1

1

在一个简单的级别中,我认为您仍然可以使用内置的 Data-Annotations 验证属性来进行验证,为此您应该将存储在表中的验证规则映射到属性。

我认为您所要做的就是通过继承类来创建自定义模型验证提供程序ModelValidatorProvider。此类包含一个调用的方法,该方法GetValidators返回该模型的集合验证器。

您必须实现该GetValidators方法,并且必须在其中进行数据库调用以从数据库(或从缓存?)获取模型的验证规则并将它们转换为ModelValidators。您仍然可以使用内置的进行DataAnnotationsModelValidator验证。

我建议您查看它的源代码,DataAnnotationsModelValidatorProvider这将为您提供所有信息。在那个类中,他们所做的基本上是迭代应用于模型属性的所有验证属性,并ModelValidator通过适配器和工厂将它们转换为 s。在您的情况下,它们不是作为属性存储在表中的记录,我认为那里不会有太多工作。

于 2012-09-13T16:01:02.213 回答