DateTime被解释为两种不同的格式

时间:2011-04-03 15:54:42

标签: c# asp.net asp.net-mvc

我有一个允许预约的MVC应用程序。用户可以单击日记视图中的插槽,将其带到页面以选择从业者并确认。

此页面的查询字符串包含DateTime,即约会开始的时间。这由Html.ActionLink(...)自动格式化为美国格式,如下所示:

/分配?日期= 04%2F06%2F2011%2009%3A00 3A00%

这是正确的反序列化,并且视图报告预约时间将是4月6日。它也存储在视图中的隐藏字段中以发布到确认操作;隐藏字段的值为:04/06/2011 09:00:00,由Html.HiddenFor(...)呈现。再次,看起来像美国格式。

但是,当表单发布时,约会将在6月4日预订,可能会将日期解释为en-GB。

为什么会这样做?

1 个答案:

答案 0 :(得分:1)

这可能是因为您的服务器配置为自动检测浏览器的文化,并且浏览器首选的文化是en-GB,这是服务器在绑定DateTime参数时将使用的内容:

<globalization culture="auto" uiCulture="auto" />

您可以将其指定为固定文化:

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