Asp.net MVC 5模型验证正则表达式没有验证特殊字符

时间:2014-06-10 17:13:58

标签: asp.net regex asp.net-mvc validation

我使用ASP.NET MVC 5并进行验证我使用的是常规Jquery不显眼的验证库。 目前我正面临一个问题,正则表达式验证在客户端可以正常工作,但在服务器端它没有验证该值。

 [RegularExpression(@"^[0-9]{19}$", ErrorMessage = "Invalid Value")]
 public string Value{ get; set; }

这是验证19位数的简单正则表达式。它在客户端工作正常它现在允许'-或任何事情传递,但如果我直接提交到服务器而不是模型未被验证。 我需要做一些特别的事吗?

1 个答案:

答案 0 :(得分:0)

如果您通过post / get / put / delete请求发送数据,则会发生ModelBinding(将post / get值映射到复杂模型的过程),如果您手动创建一个带有验证类的类,那些数据/验证注释会赢得不适用。

您可以手动验证模型 - Validate list of models programmatically in ASP.NET MVC

也就是说,有一个名为PostSharp的库可以强制执行这些规则,即使您在MVC(CodeContracts)之外创建自定义对象/模型,如果它不验证它也会抛出例外。请记住,此库已付费,但它提供了可满足您需求的免费版本。