自定义客户端验证未选择正则表达式

时间:2019-04-29 07:15:23

标签: c# jquery unobtrusive-validation

目标

使用AttributeAdapterBaseIValidationAttributeAdapterProvider创建自定义客户端验证。

问题

我已经使用标签帮助程序构建了一个表单输入元素。 当任何用户选择单选按钮时,都会加载此Form / ViewComponent。

此外,我已经在C#中构建了自定义客户端验证 使用AttributeAdapterBase<SomeIdAttribute>

我有一个ViewComponent,其以下字段的修饰如下:

[SomeId(@"^[a-zA-Z0-9-.]+[.]+[a-zA-Z0-9-.]+$"]
public string SomeId{ get; set; }

另一个带有CustomValidation和正则表达式[TenantId("^[a-zA-Z0-9-]{36}$")]的字段可以正常工作。

下面的方法AddValidation(ClientModelValidationContext context)中的代码中出现了问题:

MergeAttribute(context.Attributes, "data-val-regex-pattern", Attribute.RegexPattern);

上述正则表达式未能成功解析,并且在呈现HTML时,正则表达式模式保持为null

为了进行解析,我使用了以下行:

$.validator.unobtrusive.parse($('#someformID'));

如果我将正则表达式更改为某些简单格式,则可以使用。但是这个特殊的正则表达式没有得到分配。

是否在某处缺少一些转义序列?

如果我们使用内置RegularExpression,则问题仍然相同。

0 个答案:

没有答案