2014-01-13 43 views
0

出于某种原因,日期格式不传递给我的看法,我用在我的模型如下: -日期格式不通过查看

using System.ComponentModel.DataAnnotations; 

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime? Date { get; set; } 

然后在我看来

@model.Date 

,并在浏览器中输出

20/11/2013 00:00:00 

它总是添加“00:00:00”,尽管时间不是在SQL领域的对其应用格式。

有没有人知道怎么回事?

感谢

+0

DateTime类型总是有一个时间元素,即使是0你会必须更改视图上的显示格式。 –

+0

@Alex在您看来,您是使用HtmlHelper还是直接发射模型字段?数据注释不会自动工作,它们作为HtmlHelper方法的提示。 –

回答

2

尝试

@ model.Date.Value.ToString( “DD/MM/YYYY”)

+0

我得到“没有重载字符串需要1个参数”? – AlexW

+0

哦,我很抱歉...因为你的日期是可以为空的,所以你必须添加.Value所以你的视图应该像@ Model.Date.Value.ToString(“dd/MM/yyyy”)“但要小心!如果你在你的Date变量中有一个空值,你调用一个ToString()就会出错... – brothers28

+0

你也不需要[DisplayFormat(DataFormatString =“{0:dd/MM/yyyy}”,ApplyFormatInEditMode =真的)]在你的班级了 – brothers28

0

@model.Date只是呼吁所有属性的ToString(),并根据当前区域性使用的格式设置。

[DisplayFormat]属性由MVC模型绑定方法使用,例如Display()/DisplayFor()Editor()/EditorFor()