[RegularExpression]
在将代码写入客户端时,我从 MVC 的验证器中获取了一个 HTML 编码值。这不是错误消息的问题(因为它应该被编码以供以后显示),但它确实搞砸了正则表达式:) 在字符串字段上,我的正则表达式如下所示:
[RegularExpression(@"^[^\<\>]*$", ErrorMessage = "May not contain <,>")]
当它被 mvc3 写出时,它看起来像这样:
<input ... data-val-regex-pattern="^[^\&lt;\&gt;]*$"
data-val-regex="May not contain &lt;,&gt;" .../>
编辑:
- 由于编码的原因,它也很吸引人
<>
,但也被以下词语绊倒: t
像蒂姆g
像山羊- 可能
;
但我没有测试它
此正则表达式的目的是过滤掉 < 和 >,而不是禁用页面上的所有验证并在服务器端执行它。该字段接受多种 unicode 语言,并且只有 12 个字符长。
我的选择如下:
- 在一个页面上禁用 asp.net 输入完整性检查并仅在操作中检查
- 找到一个复杂的正则表达式来匹配 3+ unicode 范围 +/- 破折号和数字 - .net + js compat。
- 编写一个没有客户端验证的自定义正则表达式验证器
- 使用
[Remote]
验证器在服务器端执行此操作,就像我们对其他字段执行的操作一样
我现在倾向于#3,但我真的很想找到一种方法来保持内置功能。有什么办法可以禁用此输出转义?