Windows中的哪个设置决定了模型绑定器如何为模型提供水合作用,因为前端的日期时间为字符串,如下所示:
27%2F11%2F2012+16%3A09%3A01.21%2F03%2F2013+13%3A51%3A00
在一个部署环境中,如果前两个数字大于12,我将获得ModelState.IsValid == false
(即它假定为几个月而不是几天)。
答案 0 :(得分:2)
计算机将根据其区域解析日期(根据操作系统,它会在控制面板中的各个位置进行设置)。如果您的两台机器具有不同的区域设置,则会出现摩擦,因为不同的区域出现日期不同(英国的dd / mm / yyyy,美国的mm / dd / yyyy)。您可以通过配置web.config来覆盖该设置,以帮助实现一致性。
<globalization culture="en-US" uiCulture="en-US"/>
我建议的另一个选项是以通用日期时间格式保存网络表单控件的值:例如2008年1月1日星期二00:00:00 GMT。无论您的机器区域如何,都将正确解析。