Asp.net-Core

日期輸入標籤助手未顯示數據庫中的日期

  • October 24, 2021

當我在編輯視圖中使用以下程式碼時,它不會顯示模型中的日期。

<input asp-for="OprettetDato" class="form-control"/>

模型的屬性聲明如下:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime OprettetDato { get; set; }

並且值在模型中傳遞

模型通過圖片

為什麼這不起作用?

問題是[DataType(DataType.Date)]模型屬性上的屬性使輸入標籤助手產生type="date"HTML 屬性,這在 HTML5 中會導致固定的標準格式 - 請參閱此處的資訊:是否有任何方法可以更改輸入類型 =“日期”格式?

為了以正確的格式顯示欄位,刪除 [DataType(DataType.Date)]屬性,你會沒事的。另外,為了在日期格式中使用正斜杠,您需要像這樣對它們進行轉義:

[DisplayFormat(DataFormatString = @"{0:dd\/MM\/yyyy}", ApplyFormatInEditMode = true)]
public DateTime OprettetDato { get; set; }

如果您想使用 datepicker 自定義日期格式,則需要使用一些自定義 JavaScript 解決方案。

更新: 如果模型屬性是 DateTime 對象,則更高版本的標籤助手預設為輸入日期類型。要允許自定義日期格式,請確保 html 輸入類型是文本,方法是添加[DataType(DataType.Text)]

引用自:https://stackoverflow.com/questions/42275423