2012-09-01 57 views
2

我有实体的MVC3项目。 我有数据诠释日期时间属性与DisplayFormat(DataFormatString="{0:dd/MM/yyyy hh:mm:ss}")ASP.NET MVC3日期时间格式

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

因此,我打开浏览器并输入链接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.我试过globalization在web.config <sysmte.web>但没有帮助。

回答

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参数的较不明确的格式 - 当然,更多以用户为中心的显示格式。

+0

谢谢。 “yyyy-MM-ddTHH:mm:ss”真的帮了我。再次感谢你 :) – Epsilon