ASP.NET 使用 DataAnnotation 时,仅 MVC 核心日期格式不起作用
ASP.NET MVC Core date only format is not working using DataAnnotation
在视图中使用的以下 viewmodel
应该将 StartDate 显示为 9/30/2015
。但它显示为 9/30/2015 12:00:00 AM
。 using DataAnnotaion
时如何让它不显示?我知道我可以在视图内部使用 @Model.StartDate.ToString("MM/dd/yyy")
来仅显示日期。但这意味着您必须在使用以下 ViewModel
:
的每个视图中执行此操作
ViewModel:
...
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime StartDate { get; set; }
...
更新
上面ViewModel
对应的模型class已经有下面的DataAnnotation
在SQL服务器table中正确创建数据类型为Date
;当您 运行 对 SSMS
中相应的 table 进行查询时,它会正确显示 StartDate 列的仅包含日期的数据,例如 9/30/2015 等)
型号
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
sql 数据库中的 StartDate 实际上只是 Date
。此外,如果我 运行 在 SSMS
上查询它正确 returns 日期。
您的问题有两种解决方案。根据您的意见,您目前正在使用 @Model.StartDate
显示日期。
您可以这样做:
@Model.StartDate.ToString("d")
或者,您可以在 ViewModel 中使用基于模型的方法并执行以下操作:
[DataType(DataType.Date)]
public DateTime StartDate {get;set;}
那么,在你看来使用:
@Html.DisplayFor(m => m.StartDate)
在视图中使用的以下 viewmodel
应该将 StartDate 显示为 9/30/2015
。但它显示为 9/30/2015 12:00:00 AM
。 using DataAnnotaion
时如何让它不显示?我知道我可以在视图内部使用 @Model.StartDate.ToString("MM/dd/yyy")
来仅显示日期。但这意味着您必须在使用以下 ViewModel
:
ViewModel:
...
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime StartDate { get; set; }
...
更新
上面ViewModel
对应的模型class已经有下面的DataAnnotation
在SQL服务器table中正确创建数据类型为Date
;当您 运行 对 SSMS
中相应的 table 进行查询时,它会正确显示 StartDate 列的仅包含日期的数据,例如 9/30/2015 等)
型号
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
sql 数据库中的 StartDate 实际上只是 Date
。此外,如果我 运行 在 SSMS
上查询它正确 returns 日期。
您的问题有两种解决方案。根据您的意见,您目前正在使用 @Model.StartDate
显示日期。
您可以这样做:
@Model.StartDate.ToString("d")
或者,您可以在 ViewModel 中使用基于模型的方法并执行以下操作:
[DataType(DataType.Date)]
public DateTime StartDate {get;set;}
那么,在你看来使用:
@Html.DisplayFor(m => m.StartDate)