如何在MVC Unobtrusive Validation中验证DateTime?

Yai*_*vet 7 asp.net-mvc jquery-validate unobtrusive-validation asp.net-mvc-3 asp.net-mvc-4

使用MVC4启用客户端和不显眼验证,我试图了解验证如何确定输入的DateTime值是否有效.

在我的应用程序中,此格式化日期有效:01/31/2013,如果我输入:31/01/2013,我得到:

字段[fieldId]必须是日期

它如何确定什么是有效日期?

Dar*_*rov 4

它如何确定什么是有效日期?

它使用客户端浏览器上定义的当前区域性来确定正确的格式。例如,如果您的浏览器配置为使用en-US默认语言,则正确的格式为M/d/yyyy. 如果您的客户端浏览器配置为使用fr-FR语言,则正确的格式为dd/MM/yyyy.

这完全取决于您的浏览器配置使用的语言。

  • 不引人注目的客户端验证在客户端上运行。它使用 JavaScript 并使用浏览器语言设置来解析日期。服务器端验证将使用客户端语言(如果您在 `<globalization>` 元素中指定了 `culture="Auto"` 和 `uiCulture="Auto"`),或者将使用预定义的服务器端区域性。当两者不同时,问题就来了。您的客户端验证可能成功,而服务器端验证失败,反之亦然。 (2认同)
  • JavaScript 在浏览器中运行。因此,当您尝试使用其构造函数解析日期时,本机调用将使用浏览器语言来执行此解析。 (2认同)