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

ASP.NET MVC中Datepicker日历不显示及日期格式不符问题

jQuery UI Datepicker 弹窗失效与日期格式修正方案

一、TextBoxFor 日历弹窗不显示的问题

你的@Html.TextBoxFor写法存在错误,嵌套了不必要的htmlAttributes层级,导致HTML属性未正确生成,jQuery无法定位目标元素绑定datepicker。

修正后的Razor代码:

@Html.LabelFor(x => x.Birthdate)
@Html.TextBoxFor(x => x.Birthdate, new { @class = "form-control", @placeholder = "Select birth date", id = "mydate" })
@Html.ValidationMessageFor(x => x.Birthdate, null, new { @class = "text-danger" })

对应的绑定脚本(选择器需匹配修正后的id):

$(document).ready(function () {
    $("#mydate").datepicker({
        dateFormat: "dd/mm/yy", // 指定dd/mm/yyyy格式
        changeMonth: true,
        changeYear: true
    });
});

二、日期格式强制为dd/mm/yyyy的问题

不要使用<input type="date">,这是HTML5原生日期控件,其显示格式由浏览器区域设置控制,且会与jQuery UI Datepicker冲突。改用普通文本输入框(即上述修正后的TextBoxFor生成的控件),通过jQuery UI的dateFormat参数控制显示格式。

同时,为保证后端模型能正确解析dd/mm/yyyy格式的日期,需在模型的Birthdate属性上添加特性:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime Birthdate { get; set; }

这样前端显示的日期格式为dd/mm/yyyy,后端也能正确绑定提交的日期值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:53:22