在 Razor 页面中不显示更新日期和时间

问题描述 投票:0回答:1

这是我的模型: Appointment 的属性即 Appdate 和 Apptime

[Required] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime AppDate { get; set; } [Required] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime AppTime { get; set; }
我在数据库中有一些数据,我想显示这些数据来更新约会,但它没有显示
<div class="input"> <label asp-for="AppDate">Date Of Appointment:</label> <input asp-for="AppDate" value="@Model.AppDate" type="date" /> </div> <div class="input"> <label asp-for="AppTime">Date of Time:</label> <input asp-for="AppTime" value="@Model.AppTime" type="time" /> </div>
这是我的 cshtml 文件的某些部分,给定模型不是空的,它的渲染数据只是在我查看更新 cshtml 后没有像查看源页面一样显示它,这就是它的渲染日期
<div class="input"> <label for="AppDate">Date Of Appointment:</label> <input value="30/08/2023 12:00:00 am" type="date" data-val="true" data-val-required="The AppDate field is required." id="AppDate" name="AppDate" />   </div> <div class="input"> <label for="AppTime">Date of Time:</label> <input value="21/08/2023 11:15:00 pm" type="time" data-val="true" data-val-required="The AppTime field is required." id="AppTime" name="AppTime" /> </div>

并注意

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
这对我的数据库没有帮助,它仍然以默认格式保存日期和时间

这是我尝试过的我尝试过的

@Html.TextBoxfor(m=>m.Appdate,"{0:dd/mm/yyyy}")
这不起作用,因为它没有显示日历输入样式以进行正确的输入,并且单击提交按钮后也没有正确保存在数据库中。 然后我尝试用这个代替
 @Html.TextBoxFor(m => m.AppDate, "{0:dd/MM/yyyy}", new { @type = "date" })
但它再次渲染数据并且没有显示在cshtml页面中这是cshtml的查看源页面代码
<div class="input"> <label for="AppDate">Date Of Appointment:</label> <input data-val="true" data-val-required="The AppDate field is required." id="AppDate" name="AppDate" type="date" value="30/08/2023" /> </div> <div class="input"> <label for="AppTime">Date of Time:</label> <input data-val="true" data-val-required="The AppTime field is required." id="AppTime" name="AppTime" type="time" value="11:15 pm" /> </div> <div cl
我也想过使用
<input value="@Model.AppDate.ToString("yyyy-MM-dd")" type="date" ...>
但它不会工作,因为它在提交按钮上会给出输入数据类型错误

asp.net-mvc asp.net-core model razor-pages
1个回答
0
投票

您将通过直接指定来覆盖日期和时间输入的值。因此,您在

DisplayFormat
属性中指定的格式字符串将被忽略:

<input asp-for="AppDate" value="@Model.AppDate" type="date" />

使用输入标签助手,您不需要设置

value
type
属性值。您应该让标签助手从模型中读取元数据并为您生成 HTML:

<input asp-for="AppDate" />

这就是所需要的一切。这同样适用于您的

AppTime
输入。

© www.soinside.com 2019 - 2024. All rights reserved.