1

windows 中的设置决定了模型绑定器如何在给定来自前端的日期时间作为字符串的情况下对模型进行水合,如下所示:

27%2F11%2F2012+16%3A09%3A01.21%2F03%2F2013+13%3A51%3A00

在一个部署环境中,ModelState.IsValid == false如果前 2 个数字大于 12(即假定数月而不是数天),我会得到。

4

1 回答 1

2

计算机将根据其区域解析日期(根据操作系统在不同位置的控制面板中设置)。如果您的两台机器具有不同的区域设置,则会出现摩擦,因为不同区域的日期不同(英国的 dd/mm/yyyy,美国的 mm/dd/yyyy)。您可以通过配置 web.config 来覆盖该设置以帮助保持一致性。

<globalization culture="en-US" uiCulture="en-US"/>

我建议的另一个选择是以通用日期时间格式保存 Web 表单控件的值:例如 Tue, 1 Jan 2008 00:00:00 GMT。无论您的机器所在的区域如何,这都将被正确解析。

于 2013-08-16T15:57:50.227 回答