ASP.NET Core 7.0中设置input date默认值?指定日期不显示求助
ASP.NET Core 7.0 中 input type="date" 默认值设置问题解决
HTML 的 input type="date" 对 value 属性的格式有严格要求——必须是 ISO 8601 标准格式(YYYY-MM-DD),你之前用的 01/02/2023 这类斜杠分隔的日期格式不被浏览器识别,所以页面加载后无法显示指定日期。下面是对应解决方案:
一、设置默认值为当天日期
后端(C#)传递方式
在 Controller 里生成当天的标准格式字符串:
ViewData["TodayDate"] = DateTime.Today.ToString("yyyy-MM-dd");
视图中绑定:
<input type="date" class="form-control" id="ngaydk" value="@ViewData["TodayDate"]">
前端 JavaScript 方式
如果不想后端处理,直接用 JS 在页面加载时设置:
<input type="date" class="form-control" id="ngaydk"> <script> document.addEventListener('DOMContentLoaded', function() { const today = new Date().toISOString().split('T')[0]; document.getElementById('ngaydk').value = today; }); </script>
二、设置指定日期(以 2023 年 2 月 1 日为例)
直接写 value 属性
把日期转换成 YYYY-MM-DD 格式:
<input type="date" id="ngaydk" value="2023-02-01">
通过 ViewData 传递
后端先生成正确格式的字符串(如果是从已有字符串解析,要注意匹配原格式):
// 直接创建指定日期并转格式 ViewData["greeting2"] = new DateTime(2023, 2, 1).ToString("yyyy-MM-dd"); // 如果是从"01/02/2023"(日/月/年)字符串解析,这么写: // ViewData["greeting2"] = DateTime.ParseExact("01/02/2023", "dd/MM/yyyy", null).ToString("yyyy-MM-dd");
视图中绑定:
<input type="date" class="form-control" id="ngaydk" value="@ViewData["greeting2"]">
内容的提问来源于stack exchange,提问作者Nhat Ho
相关产品推荐
相关产品推荐

