簡體   English   中英

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 ,因為它只是一個顯示日期。 因此,您可以嘗試以下選項:

  1. Html.DisplayFor

    注冊時間:@Html.DisplayFor(m => m.NextRenewalDueAt)

  2. 視圖上的格式

    @{ 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 )。

要解決此問題,您可以使用以下方法:

  1. 使用 Html.DisplayFor() 方法:

     @Html.DisplayFor(m => m.NextRenewalDueAt)
  2. 更改視圖中的日期格式。

    注冊時間: @(Model.Place.NextRenewalDueAt.HasValue? Model.Place.NextRenewalDueAt.Value.ToString("dd/MMM/yyyy"): "")

  3. 使用輸入標簽助手:

    <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM