在视图中使用的viewmodel
应该显示一个 StartDate,比如说9/30/2015
。但它显示为9/30/2015 12:00:00 AM
.如何在使用DataAnnotaion
时使其显示没有时间?我知道我可以使用@Model.StartDate.ToString("MM/dd/yyy")
内部视图来仅显示日期。但这意味着您必须在使用以下ViewModel
的每个视图中执行此操作:
视图模型:
...
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime StartDate { get; set; }
...
更新
上述ViewModel
的相应模型类已经具有以下DataAnnotation
,可以正确地在SQL Server表中创建数据类型Date
;当您在SSMS
中对相应的表运行查询时,它会正确显示StartDate列的数据,仅包含日期,例如9/30/2015等(。
型
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
sql 数据库中的 StartDate 实际上只Date
。此外,如果我对SSMS
运行查询,它只会正确返回日期。
您的问题有两种解决方案。 根据您的评论,您当前正在使用@Model.StartDate
来显示日期。
您可以这样做:
@Model.StartDate.ToString("d")
或者,您可以在 ViewModel 中使用基于模型的方法并执行以下操作:
[DataType(DataType.Date)]
public DateTime StartDate {get;set;}
然后,在您看来,使用:
@Html.DisplayFor(m => m.StartDate)