用不正确的日期格式绑定MVC日期时间

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (48)

ASP.NETMVC现在允许对日期时间对象进行隐式绑定。我有个行动

public ActionResult DoSomething(DateTime startDate) 
{ 
... 
}

这将成功地将Ajax调用中的字符串转换为日期时间。然而,我们使用日期格式dd/mm/yyy;MVC正在转换为MM/dd/yyy。例如,使用字符串‘09/02/2009’提交对操作的调用,结果在本地设置中的日期为‘02/09/2009 00:00:00“或9月2日。

我不想为了日期格式而卷起我自己的范本。但是,似乎不必更改操作以接受字符串,然后使用DateTime.Parse,如果MVC能够为我做到这一点。

是否有任何方法来更改日期时间的默认模型绑定中使用的日期格式?默认的模型绑定器不应该使用您的本地化设置吗?

提问于
用户回答回答于

Melvyn港对MVC为何以日期方式工作,以及在必要时如何覆盖它有了透彻的解释:

在寻找要解析的值时,框架按照特定的顺序查找,即:

  1. RouteData(未见上文)
  2. URI查询字符串
  3. 请求书

然而,只有最后一种才是文化意识。从本土化的角度来看,这是有很好的理由的。想象一下,我已经编写了一个web应用程序,其中显示了我在网上发布的航空公司航班信息。相比之下,如果我用一种形式预订我的航班,那么一切都是在一个紧张的周期中发生的。数据在写入表单时可以尊重Current区域性,因此在从表单返回时需要尊重它。

用户回答回答于

  <system.web>
    <globalization uiCulture="en-AU" culture="en-AU" />

但在web.config中,我认为全球范围内更好

扫码关注云+社区