我正在構建某種形式(ASP.NET MVC)。我有一個日期時間輸入欄位。我將 viewmodel 傳遞給帶有日期屬性的初始化值(DateTimeOffset.Now)的視圖。問題是在瀏覽器中生成的日期時間選擇器也有我不需要的秒和毫秒。
我看到了類似問題的回答,人們建議添加格式,但是當我添加格式時,輸入欄位不會生成默認值(通過 viewmodel 傳遞的那個),可見值為:“dd.mm.rrrr -- :--" (可能是我所在國家/地區的默認日期格式)。當我查看 html 時,我發現在 value 屬性中有適當的值(“17.01.2022 12:22”)。
當我從默認日期時間選擇器中選擇值時,一切正常,即使我提交表單(httppost)并重新加載值。
<form class="form" asp-action="ScheduleItemsAdd" method="post">
<div class="form-group d-flex flex-column" >
<label asp-for="FirstVisitDateTime" class="control-label"></label>
<input asp-for="FirstVisitDateTime" class="form-control" asp-format="{0:dd.MM.yyyy hh:mm}">
<button type="submit" class="btn btn-primary w-100">Add</button>
</div>
當我洗掉 "asp-format="{0:dd.MM.yyyy hh:mm}" 時,它將加載初始值,但會在日期時間選擇器中顯示秒和毫秒。
private DateTimeOffset? _firstVisitDateTime;
[DataType(DataType.DateTime)]
[DisplayFormat( ApplyFormatInEditMode = true)]
public DateTimeOffset FirstVisitDateTime
{
get
{
if (_firstVisitDateTime.HasValue)
{
return _firstVisitDateTime.Value;
}
else
{
return DateTimeOffset.Now;
}
}
set { _firstVisitDateTime = value; }
}
我想加載初始值(或只是 DateTime.Now)并使用沒有秒和毫秒的默認日期時間選擇器。
有什么建議嗎?
uj5u.com熱心網友回復:
轉變:
[DataType(DataType.Datetime)]
到:
[DataType(DataType.Date)]
這只會在瀏覽器中顯示日期部分。
uj5u.com熱心網友回復:
如果沒問題,您可以將輸入欄位顯示型別更改為字串,然后在支持時您可以使用 C# 代碼格式化日期時間,即
mydatetime.ToString("{0:dd.MM.yyyy hh:mm}");
在前端,您可以使用 moment.JS 更改輸入欄位的格式
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415410.html
標籤:
