2

我有实体的 MVC3 项目。我在 DateTime 属性上有数据注释DisplayFormat(DataFormatString="{0:dd/MM/yyyy hh:mm:ss}")

控制器具有以实体为参数的方法,并使用相同的实体对象调用视图,显示其日期属性。

因此,我打开浏览器并输入链接http://site/entity/method?dateproperty=01/09/2012 01:02:03(2012 年 9 月 1 日)并显示09/01/2012 01:02:03(2012 年 1 月 9 日)。

在视图中,我使用DisplayFor它的显示就像dd/MM/yyyy我有一个设置的 DisplayFormat 一样。

问题是它读起来像,MM/dd/yyyy而不是dd/MM/yyyy,任何解决方案?

PS 我globalization在 web.config中尝试过,<sysmte.web>但没有帮助。

4

1 回答 1

2

怀疑问题在于您没有ApplyFormatInEditMode = true在属性中指定,因此它使用默认格式进行解析,但使用您指定的格式进行格式化

我无论如何都不是 MVC 开发人员,但是如果您希望在两个方向上使用相同的格式,我相信您可以将属性更改为:

[DisplayFormat(ApplyFormatInEditMode = true, 
               DataFormatString="{0:dd/MM/yyyy HH:mm:ss}")]

请注意,我已更改hhHH,因为我怀疑您需要 24 小时格式。我实际上建议使用yyyy-MM-ddTHH:mm:ss(ISO-8601) 作为 URL 参数的不那么模糊的格式 - 当然,使用更加以用户为中心的显示格式。

于 2012-09-01T14:28:29.083 回答