【发布时间】:2014-08-06 13:24:12
【问题描述】:
我有一个 MVC 4 模型,并正在使用 @Html.TextBoxFor 在视图中创建 html。在其中一个字段的模型中,我有一个 RegularExpression 属性,定义如下:
[Required(ErrorMessageResourceType=typeof(ResourceFile), ErrorMessageResourceName="ResourceName1"
[RegularExpression(@"\w{3,5}", ErrorMessageResourceType=typeof(ResourceFile), ErrorMessageResourceName="ResourceName2")]
public string TestProperty { get; set; }
请注意,表达式比这更复杂,但我这里的内容适合测试。我已经设置了不显眼的客户端验证,如下所述:http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
我的问题是我需要接受俄语字符。 .Net 的正则表达式对于 \w 与 javascript 的正则表达式有不同的含义,因此服务器端验证按我的预期工作,而客户端则没有。
是否可以关闭 RegularExpression 属性的客户端验证而不关闭 Required 属性?
如果不关闭该模型对象上的所有其他属性,是否可以只关闭此单个属性的客户端验证?
【问题讨论】:
-
您可以删除正则表达式属性并手动验证吗?
-
当然可以,但我希望有比这更好的解决方案。
-
我认为您将不得不推出自己的验证,推出自己的自定义属性,以考虑俄语或修改正则表达式以匹配您要匹配的内容。
标签: c# javascript asp.net-mvc validation