ASP.Net Core MVC DisplayFormat 没有删除日期的时间元素
ASP.Net Core MVC DisplayFormat not removing the time element of a date
我正在使用 ASP.Net Core MVC 5.0
我正在尝试格式化日期时间?字段,以便它省略时间部分,只显示日期。
我有以下
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime? NextRenewalDueAt { get; set; }
但它仍然显示时间部分 - 01/02/2021 00:00:00
我显示-
Registered on: @Model.Place.NextRenewalDueAt
如何去掉时间部分?
谢谢
看来您不需要设置ApplyFormatInEditMode = true
,因为它只是一个显示日期。所以你可以试试这些选项:
Html.DisplayFor
注册于:@Html.DisplayFor(m => m.NextRenewalDueAt)
视图格式
@{
var tempDate = Model.Place.NextRenewalDueAt.HasValue ? Model.Place.NextRenewalDueAt.ToShortDateString():“”;
}
注册于:@tempDate
Registered on: @Model.Place.NextRenewalDueAt
格式化字符串仅在绑定数据绑定控件的值时应用于字段值(如:Html Helper: EditorFor()
and DisplayFor()
, Asp.net Core Tag Helpers:输入)。通过使用上面的代码,您只是从模型中获取日期,而没有绑定到数据绑定控件,因此,它将显示原始格式(如: 6/3/2021 2:29:23 PM
)。
要解决这个问题,您可以使用以下方法:
使用Html.DisplayFor()方法:
@Html.DisplayFor(m => m.NextRenewalDueAt)
更改视图中的日期格式。
注册于:@(Model.Place.NextRenewalDueAt.HasValue ? Model.Place.NextRenewalDueAt.Value.ToString("dd/MMM/yyyy") : "")
使用输入标签助手:
<input asp-for="NextRenewalDueAt" class="form-control" type="text" readonly/>
[注意] 因为,Input Tag Helper 根据 .NET 类型设置 HTML 类型属性。要格式化日期时间数据类型,我们应该将 type
属性设置为 text
,否则,它将使用 type="datetime-local"
。更多详细信息,请参阅 The Input Tag Helper。
我正在使用 ASP.Net Core MVC 5.0
我正在尝试格式化日期时间?字段,以便它省略时间部分,只显示日期。
我有以下
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime? NextRenewalDueAt { get; set; }
但它仍然显示时间部分 - 01/02/2021 00:00:00
我显示-
Registered on: @Model.Place.NextRenewalDueAt
如何去掉时间部分?
谢谢
看来您不需要设置ApplyFormatInEditMode = true
,因为它只是一个显示日期。所以你可以试试这些选项:
Html.DisplayFor
注册于:@Html.DisplayFor(m => m.NextRenewalDueAt)
视图格式
@{ var tempDate = Model.Place.NextRenewalDueAt.HasValue ? Model.Place.NextRenewalDueAt.ToShortDateString():“”; }
注册于:@tempDate
Registered on: @Model.Place.NextRenewalDueAt
格式化字符串仅在绑定数据绑定控件的值时应用于字段值(如:Html Helper: EditorFor()
and DisplayFor()
, Asp.net Core Tag Helpers:输入)。通过使用上面的代码,您只是从模型中获取日期,而没有绑定到数据绑定控件,因此,它将显示原始格式(如: 6/3/2021 2:29:23 PM
)。
要解决这个问题,您可以使用以下方法:
使用Html.DisplayFor()方法:
@Html.DisplayFor(m => m.NextRenewalDueAt)
更改视图中的日期格式。
注册于:
@(Model.Place.NextRenewalDueAt.HasValue ? Model.Place.NextRenewalDueAt.Value.ToString("dd/MMM/yyyy") : "")
使用输入标签助手:
<input asp-for="NextRenewalDueAt" class="form-control" type="text" readonly/>
[注意] 因为,Input Tag Helper 根据 .NET 类型设置 HTML 类型属性。要格式化日期时间数据类型,我们应该将
type
属性设置为text
,否则,它将使用type="datetime-local"
。更多详细信息,请参阅 The Input Tag Helper。