8

在 ASP.NET MVC 3 项目中,我需要验证视图中的名称字段以允许特定的重音字符集。因此,在我的视图模型中,我在适当的属性上定义了一个正则表达式属性,如下所示:

[RegularExpression("^[a-zA-Zá]{2,50}$")]

请注意这不是确切的代码,它被简化以使我的问题更容易理解。

此正则表达式在服务器端工作正常,但在客户端不起作用。如果查看输入字段的 HTML 是否包含此属性:

data-val-regex-pattern="^[a-zA-Zá]{2,50}$"

如您所见,重音字符已转换为破坏正则表达式的 HTML 实体。谁能告诉我为什么会发生这种情况以及如何解决?

更新

抱歉,我是个彻头彻尾的白痴。我完全忘记了我们几天前升级到 MVC 4 beta。随后我创建了两个小测试项目,一个在 MVC 3 中,一个在 MVC 4 中。问题只存在于 MVC 4 中。

4

2 回答 2

1

原来有人问过同样的问题。我的谷歌搜索直到现在才找到它。

asp.net mvc 4中的DataAnnotations验证(正则表达式)-剃刀视图

该问题已报告为 MVC 4 beta 中的错误。

于 2012-05-10T16:43:21.217 回答
0

试试这个:

^[a-zA-Z\u00E1]{2,50}$

使用\uXXXX, whereXXXX字符的十六进制代码。

于 2012-05-10T15:12:36.983 回答