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

如何将控制器日期值传递给编辑视图的Date picker并正常显示

解决Edit视图中Date Picker不显示传递值的问题

核心原因

HTML5的date类型输入控件仅支持YYYY-MM-DD格式的日期字符串,而默认的EditorFor可能输出本地格式的日期(如MM/DD/YYYY或DD/MM/YYYY),导致控件无法解析值,从而不显示已传递的日期。

解决方案

方案1:给模型属性添加格式化特性

在实体模型中,为Date_of_birth属性添加DisplayFormat特性,强制编辑模式下输出指定格式:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime Date_of_birth { get; set; }

之后保持原视图代码不变,EditorFor会按照指定格式输出日期字符串,控件即可正常显示值。

方案2:改用TextBoxFor手动指定格式

如果不想修改模型,可以直接替换EditorFor为TextBoxFor,明确指定日期格式:

@Html.TextBoxFor(model => model.Date_of_birth, "{0:yyyy-MM-dd}", new { @class = "form-control js-datepicker", type = "date" })

这种方式更直接,确保输出的日期字符串符合HTML5控件的要求。

方案3:验证后端传递的模型值

确认Edit动作方法中,已正确从数据源获取并传递了Date_of_birth的值,避免值为null或未被正确赋值:

public ActionResult Edit(int id)
{
    var model = db.YourEntity.Find(id);
    // 检查model.Date_of_birth是否有有效日期值
    return View(model);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:10:35