如何从EntLib验证块中提取验证规则?

时间:2011-07-08 15:00:33

标签: c# validation enterprise-library

我想要提取验证规则,然后将它们转换为客户端javascript。

我试图搜索如何在客户端javascript中使用验证块,但没有找到。所以我想自己写,但我不知道如何提取验证规则。

任何人都知道该怎么做?或者,无论如何在客户端javascript中使用验证块?不是由ajax验证。感谢。

1 个答案:

答案 0 :(得分:0)

我找到了这个项目ElValWeb

这是我的测试代码:

        public static void ExtractRules(Type targetType , string ruleSet) {
        var settings = (ValidationSettings)ConfigurationManager.GetSection ( ValidationSettings.SectionName );
        if ( settings != null ) {
            var type = settings.Types.Where ( t => t.Name == targetType.FullName ).FirstOrDefault ( );
            if ( type != null ) {
                var data = type.Rulesets.Where ( t => t.Name == ruleSet ).FirstOrDefault();
                if ( data != null ) {
                    List<ValidatorData> validatorDatas = new List<ValidatorData> ( );
                    data.Properties.ForEach ( (p) => {
                       validatorDatas.AddRange( p.Validators.Cast<ValidatorData> ( ));
                    } );

                    data.Fields.ForEach ( (f) => {
                        validatorDatas.AddRange ( f.Validators.Cast<ValidatorData> ( ) );
                    } );
                }
            }
        }
    }