首页 > 解决方案 > 如何在 ASP.NET Core 表单中填充日期字段

问题描述

编辑简单实体模型类时,日期字段值不会预先填充在编辑页面上。虽然编辑页面上的所有其他字段都预先填充了数据库中的实体值,但日期字段却没有。我已经签入了 SQL Server,并且详细信息页面也确认在创建实体实例时确实保存了日期。

如何在编辑表单中预先填充日期字段?

实体模型类中的日期字段

[DataType(DataType.Date)]  
[DisplayFormat(DataFormatString = "{0:MMMM dd, yyyy}", ApplyFormatInEditMode = true)]  
[Display(Name = "Example date")]  
public DateTime ExampleDate { get; set; }  

Edit.cshtml 中的日期字段

<div class="form-group col-md-6">
    <label asp-for="@Model.Project.ExampleDate" class="control-label"></label>
    <input asp-for="@Model.Project.ExampleDate" value="@Model.Project.ExampleDate" class="form-control" />
    <span asp-validation-for="@Model.Project.ExampleDate" class="text-danger"></span>
</div>

标签: c#asp.net-core

解决方案


解决方案1:

您可以尝试更改您Edit.cshtml喜欢的以下内容。

  <input asp-for="@Model.Project.ExampleDate" value="@Model.Project.ExampleDate.ToString("yyyy-MM-dd")" class="form-control" />

解决方案2:

您可以更改模型类,如下所示(删除代码ApplyFormatInEditMode = true):

[DataType(DataType.Date)]  
[DisplayFormat(DataFormatString = "{0:MMMM dd, yyyy}")]  
[Display(Name = "Example date")]  
public DateTime ExampleDate { get; set; } 

推荐阅读