Asp.net mvc FluentValidation将正则表达式验证器集中在验证器扩展中
我有一个验证规则,它对于我想集中处理的许多属性都是通用的,但是当Asp.net mvc FluentValidation将正则表达式验证器集中在验证器扩展中,asp.net-mvc,validation,fluentvalidation,Asp.net Mvc,Validation,Fluentvalidation,我有一个验证规则,它对于我想集中处理的许多属性都是通用的,但是当NotEmpty()规则和类似的规则工作正常时,匹配(…)和其他仅字符串的验证规则不会编译 没问题: public static IRuleBuilderOptions<T, TProperty> MustNotContainHtml<T, TProperty>(this IRuleBuilderOptions<T, TProperty> ruleBuilder) {
NotEmpty()
规则和类似的规则工作正常时,匹配(…)
和其他仅字符串的验证规则不会编译
没问题:
public static IRuleBuilderOptions<T, TProperty> MustNotContainHtml<T, TProperty>(this IRuleBuilderOptions<T, TProperty> ruleBuilder)
{
return ruleBuilder.NotEmpty().WithMessage("Some message.");
}
哪些规则生成器签名可用于仅字符串选项?解决方案是重用实际的
RegularExpressionValidator
:
public static IRuleBuilderOptions<T, string> MustNotContainHtml<T>(this IRuleBuilder<T, string> ruleBuilder)
{
return ruleBuilder.SetValidator(new RegularExpressionValidator("<[a-z!/?]|&#")).WithMessage("Some custom message.");
}
公共静态IRuleBuilder选项不得包含HTML(此IRuleBuilder规则生成器)
{
return ruleBuilder.SetValidator(新的RegularExpressionValidator(“您也可以接受自己的答案,这有助于我们确定需要帮助的问题:)我知道,但仍需要等到明天才能允许;-)
public static IRuleBuilderOptions<T, string> MustNotContainHtml<T>(this IRuleBuilder<T, string> ruleBuilder)
{
return ruleBuilder.SetValidator(new RegularExpressionValidator("<[a-z!/?]|&#")).WithMessage("Some custom message.");
}