如何让DatePicker默认显示dd.mm.yyyy而非01.01.0001并保留选值记忆
解决方案
要解决默认显示01.01.0001并实现占位提示+选值记忆的需求,只需两步修改:
1. 调整后端模型属性
将DateTime类型改为可空DateTime?,并添加日期格式化标记,避免默认值DateTime.MinValue(即01.01.0001)被渲染到页面:
[BindProperty, DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)] public DateTime? Date { get; set; } public void OnPostTestClick() { String testDate = Request.Form["Date"]; Debug.WriteLine("Testclick verdi2 = " + testDate); filterdato = testDate; ListData(); }
2. 前端添加占位提示
在input标签中添加placeholder属性,指定提示文本:
<form method="post" asp-page-handler="TestClick"> <br /> <br /> <input asp-for="Date" placeholder="dd.mm.yyyy" /> <button>Search</button> <br /> </form>
原理说明
- 可空
DateTime?的默认值为null,页面加载时输入框不会填充默认日期,转而显示placeholder文本。 BindProperty特性会自动保留用户提交的日期值,再次加载页面时会回显已选择的日期,实现记忆功能。DisplayFormat确保日期在输入框中以dd.MM.yyyy格式显示,同时兼容HTML5日期输入的提交格式要求。
内容的提问来源于stack exchange,提问作者Atrageous
相关产品推荐
相关产品推荐

