ASP.NET MVC 核心日期格式无法使用数据注释



在视图中使用的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)

最新更新