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

C# ASP.NET中如何将DateTime赋值给type=date的TextBox并正常显示?

解决ASP.NET中Type="Date"的TextBox无法显示数据库日期的问题

嘿,这个问题我之前也踩过坑!核心原因很明确:HTML5的type="date"输入框有严格的格式要求——它只认ISO 8601标准的日期格式:yyyy-MM-dd。你直接把数据库里的日期转成字符串赋值,大概率格式不对(比如是dd/MM/yyyy或者带时分秒的完整时间),浏览器解析不了,就只会显示默认的占位符了。

给你两个关键的修正步骤:

  • 首先,从数据库读取日期时,尽量获取强类型的DateTime对象,而不是直接ToString(),避免格式混乱;
  • 然后把DateTime对象格式化为yyyy-MM-dd的字符串,再赋值给TextBox的Text属性。

修改后的后台代码可以这样写:

// 从DataReader中获取强类型的DateTime(避免直接ToString带来的格式问题)
DateTime dobDate = rdr.GetDateTime(rdr.GetOrdinal("DOB"));
// 格式化为HTML5 date输入框要求的标准格式
DoB.Text = dobDate.ToString("yyyy-MM-dd");

另外,如果你的数据库里DOB字段允许为空,记得先判断是否为DBNull,避免报错:

if (!rdr.IsDBNull(rdr.GetOrdinal("DOB")))
{
    DateTime dobDate = rdr.GetDateTime(rdr.GetOrdinal("DOB"));
    DoB.Text = dobDate.ToString("yyyy-MM-dd");
}
else
{
    // 处理空值情况,比如清空输入框
    DoB.Text = string.Empty;
}

前台的TextBox代码不用改,保持Type="Date"就好,这样用户依然能正常编辑,浏览器也会提供原生的日期选择器~

内容的提问来源于stack exchange,提问作者user9452014

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:19:06