使用AttributeAdapterBase
和IValidationAttributeAdapterProvider
创建自定义客户端验证。
我已经使用标签帮助程序构建了一个表单输入元素。 当任何用户选择单选按钮时,都会加载此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
,则问题仍然相同。