在ASP.NET MVC 3项目中,我需要验证视图中的名称字段以允许特定的集合重音字符。所以在我的视图模型中,我在相应的属性上定义了一个正则表达式属性,如下所示:
[RegularExpression("^[a-zA-Zá]{2,50}$")]
请注意这不是确切的代码,它简化了以使我的问题更容易理解。
这个正则表达式在服务器端工作正常,但在客户端不起作用。如果您查看输入字段的HTML包含此属性:
data-val-regex-pattern="^[a-zA-Zá]{2,50}$"
正如您所看到的,重音字符已转换为HTML实体,该实体会破坏正则表达式。谁能告诉我为什么会这样,以及如何解决它?
更新
道歉我是一个完整的白痴。我完全忘记了几天前我们升级到MVC 4测试版。随后我创建了两个小型测试项目,一个在MVC 3中,另一个在MVC 4中。这个问题只存在于MVC 4中。答案 0 :(得分:1)
原来有人问了同样的问题。我的谷歌搜索直到现在才找到它。
DataAnnotations validation (Regular Expression) in asp.net mvc 4 - razor view
此问题已被报告为MVC 4测试版中的错误。
答案 1 :(得分:0)
试试这个:
^[a-zA-Z\u00E1]{2,50}$
使用\uXXXX
,其中XXXX
字符的十六进制代码。