EF Core查询DateTime字段未加载到视图及日期选择器不显示问题咨询
你遇到的问题由两个核心原因导致:
- HTML标准中
type="datetime"属性已经被主流浏览器废弃,因此不会渲染原生日期选择器 - 日期时间输入框对值的格式有严格要求,格式不匹配时会出现数据加载失败的情况
解决方案
步骤1:替换正确的输入框type属性
将视图中RegisteredDate对应的input改为使用type="datetime-local",这是当前HTML标准中支持原生日期时间选择器的属性值:
<input asp-for="RegisteredDate" type="datetime-local" />
如果你的业务只需要日期不需要时间,可以改为type="date",兼容性更好。
步骤2:给模型属性添加格式注解
在Customer模型的RegisteredDate属性上添加格式配置,保证Razor渲染时输出符合输入框要求的格式:
[DataType(DataType.DateTime)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-ddTHH:mm}", ApplyFormatInEditMode = true)] public DateTime RegisteredDate { get; set; }
如果使用的是type="date",将格式字符串改为"{0:yyyy-MM-dd}"即可。
可选:第三方组件兼容
如果你项目中使用了Bootstrap等前端UI库,可以使用库自带的日期选择组件,自定义样式和交互的灵活度更高,兼容性也优于原生选择器。
内容的提问来源于stack exchange,提问作者Haminteu
相关产品推荐
相关产品推荐

