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

如何通过HTML表单向Controller提交日期?现有代码无法运行

解决HTML表单向ASP.NET Controller提交日期失败的问题

我来帮你捋捋这个问题,你的表单提交日期没成功,大概率是这几个点没处理好,咱们一步步修复:

  • 核心问题:Input的Name属性不规范
    你给日期输入框用了带空格的法语名称 Choisir une date,ASP.NET的模型绑定系统很难识别这种带空格和特殊字符的参数名,这是最主要的原因。建议改成简洁的英文名称,比如 selectedDate,这样Controller那边能轻松匹配到参数。

  • 修改后的表单代码
    把input的name属性替换成规范的名称,完整表单如下:

    <form action="/Home/Index" method="get">
        <input type="date" name="selectedDate"><br>
        <input type="submit" value="Submit">
        <input type="reset">
    </form>
    
  • Controller端的参数接收
    确保你的Action参数名和input的name完全一致,比如这样写:

    public IActionResult Index(DateTime selectedDate)
    {
        // 这里就可以拿到用户选择的日期了,比如做后续处理
        return View();
    }
    

    如果你用ViewModel接收数据,ViewModel的属性名也要对应:

    public class DateInputModel
    {
        public DateTime SelectedDate { get; set; }
    }
    
    // 对应Action
    public IActionResult Index(DateInputModel model)
    {
        var chosenDate = model.SelectedDate;
        // 处理逻辑
        return View();
    }
    
  • 额外小提示
    提交后可以看看URL,正常情况下会拼上参数,比如 /Home/Index?selectedDate=2024-05-20,如果URL里有这个参数但Controller没拿到,那肯定是参数名不匹配;如果URL里没有,检查表单的action路径是否正确,或者input的name有没有写错。

另外,input type="date" 默认提交的是ISO标准格式(yyyy-MM-dd),ASP.NET默认支持这个格式,一般不需要额外配置日期解析规则。

内容的提问来源于stack exchange,提问作者M.LOOK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:03:02