我有实体的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
,是否有任何解决方案?
P.S。我在web.config globalization
中尝试了<sysmte.web>
但没有帮助。
答案 0 :(得分:2)
我怀疑问题在于您尚未在属性中指定ApplyFormatInEditMode = true
,因此它使用默认格式解析 ,但使用您指定的格式格式化。
我绝对不是MVC开发者,但是如果您希望在两个方向上使用相同的格式,我相信您可以将属性更改为:
[DisplayFormat(ApplyFormatInEditMode = true,
DataFormatString="{0:dd/MM/yyyy HH:mm:ss}")]
请注意,我已将hh
更改为HH
,因为我怀疑您需要24小时格式。我实际上建议使用yyyy-MM-ddTHH:mm:ss
(ISO-8601)作为URL参数的不太模糊的格式 - 当然还有更加以用户为中心的显示格式。