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

如何让Datepicker保留选中日期值?ASP.NET Core Razor页面实现咨询

解决ASP.NET Core Razor页面Datepicker提交后保留选中日期的问题

1. 修正视图层(.cshtml)的输入框绑定

原代码中input的value是固定字符串,未与模型属性关联,导致回发后无法保留选中值。改用asp-for标签助手绑定模型的Date属性,Razor会自动处理日期格式和回发后的赋值:

@model YourPageModel

<form method="post" asp-page-handler="TestClick">
    <br />
    <br />
    <input type="date" data-val="true" data-val-required="The Date field is required." asp-for="Date" />
    <button>Search</button>
    <br />
</form>

注:模型中的Date属性已标记[BindProperty, DataType(DataType.Date)],无需手动写id、name和value属性,asp-for会自动生成并填充正确值。

2. 修正后台逻辑(.cshtml.cs)的日期获取

利用[BindProperty]的自动绑定特性,直接使用模型的Date属性,无需从Request.Form手动取值,同时确保回发后属性值保留:

public class YourPageModel : PageModel
{
    [BindProperty, DataType(DataType.Date)]
    public DateTime Date { get; set; }

    // 若允许日期为空,可改为可空类型:public DateTime? Date { get; set; }

    public void OnPostTestClick()
    {
        string testDate = Date.ToString("yyyy-MM-dd");
        Debug.WriteLine("Testclick verdi2 = " + testDate);
        filterdato = testDate;
        ListData();
    }

    // 你的ListData方法...
}

3. 关键说明

  • asp-for="Date"会自动将模型的Date值格式化为HTML5 date输入框要求的yyyy-MM-dd格式,回发后页面重新渲染时,会用模型当前的Date值填充输入框,实现保留选中日期的效果。
  • 若使用可空DateTime?类型,Razor会自动处理空值情况,生成空的value属性以显示输入框占位符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:21:01