You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Entity Framework Core仅日期属性格式化后编辑页仍要求输入DateTime问题

问题原因

你当前的配置仅指定了数据的展示格式,没有告知框架该字段对应的前端输入控件类型为日期选择器,所以编辑页默认生成了支持完整日期时间的输入框。

解决方案

方案1(推荐,全局生效)

在属性上额外添加[DataType(DataType.Date)]特性即可,修改后的属性配置如下:

[Column(TypeName="Date")]
[Display(Name = "出生日期")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime BirthDate { get; set; }

添加该特性后,Razor视图自动生成的输入框会默认使用type="date"的HTML5日期控件,只会要求选择/输入日期,不会出现时间部分。

方案2(视图层手动修改)

直接在编辑页的对应输入控件上手动指定type属性:

  • 若使用Input Tag Helper,写法如下:
<Input asp-for="BirthDate" type="date" class="form-control" />
  • 若使用Html Helper,写法如下:
@Html.EditorFor(x => x.BirthDate, new { htmlAttributes = new { @type = "date", @class = "form-control" } })

注意事项

如果出现日期绑定失败的情况,可以把DisplayFormat的DataFormatString调整为"{0:yyyy-MM-dd}",和HTML5日期控件的默认提交格式保持一致即可。

内容的提问来源于stack exchange,提问作者Felipe K. Bernardino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:57:01