ASP.NET MVC4正则表达式模型验证属性不适用于带有重音字符的客户端

时间:2012-05-10 14:46:24

标签: regex jquery-validate asp.net-mvc-4

在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中。

2 个答案:

答案 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字符的十六进制代码。