【问题标题】:Asp.net MVC 5 model validation regex not validating special charactersAsp.net MVC 5 模型验证正则表达式不验证特殊字符
【发布时间】:2014-06-11 01:48:12
【问题描述】:

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

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

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

【问题讨论】:

  • 您在调用 Model.IsValid 吗?当模型绑定时会发生什么?有什么例外吗?向我们展示其他可以提供帮助的东西。
  • ModelState.IsValid 没有返回错误的一些原因。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多