[英]ASP.NET MVC 3 Pattern for dynamic validation attributes including client side
我对表单中字段的验证要求包含在外部表中,以便可以在不更改和重建代码的情况下更新它们。
我有大约100个字段,其中包含验证要求-范围,要求,正则表达式以及对其他字段的依赖。 一个示例是日期范围验证。 出生日期字段要求的日期范围是当前日期的-10年到-50年之间。
我已阅读了有关该主题的内容,但尚未确定完整解决方案的模式。
我将Visual Studio 2010与MVC 3和Entity Framework结合使用。
对此将有任何帮助。 提前致谢。
在简单的层次上,我认为您仍然可以使用内置的Data-Annotations验证属性来进行验证,为此,您应该将表中存储的验证规则映射到这些属性。
我认为您所要做的就是通过继承ModelValidatorProvider
类来创建自定义模型验证提供程序。 此类包含一个名为GetValidators
方法,该方法返回该模型的集合验证器。
您必须实现GetValidators
方法,在其中必须进行数据库调用以从数据库(或从缓存?)获取模型的验证规则,并将其转换为ModelValidator
。 您仍然可以使用内置的DataAnnotationsModelValidator
进行验证。
我建议您研究一下DataAnnotationsModelValidatorProvider
的源代码,它将为您提供所有信息。 在该类中,他们所做的基本上是迭代应用于模型属性的所有验证属性,并通过适配器和工厂将它们转换为ModelValidator
。 就您而言,它们不是属性而是作为记录存储在表中,我认为不会有太多工作要做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.