[英]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 : Input)。 通過使用上面的代碼,您只需從 Model 中獲取日期,而無需綁定到數據綁定控件,因此它將顯示原始格式(如: 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 類型屬性。 要格式化 datetime 數據類型,我們應該將type
屬性設置為text
,否則,它將使用type="datetime-local"
。 更多詳細信息,請參閱輸入標簽助手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.