ASP.NET中jQuery DateTimePicker去除时间显示问题及替代组件咨询
咱们先解决你当前用的jQuery DateTimePicker v2.4.5的时间问题,之后再给你推荐几个适合ASP.NET的简易替代组件。
修复当前组件的时间插入问题
你的核心问题是选完日期后字段自动带上时间,主要是组件配置参数不匹配,加上DateTime类型默认带时间的特性导致的,按以下步骤调整:
1. 修正JS配置参数
jQuery DateTimePicker v2.4.5里没有dateFormat这个参数,正确的参数名是format。另外要确保JS里的格式和Model的DisplayFormat统一,避免显示混乱。修改后的JS代码:
$("#DateTo").datetimepicker({ timepicker: false, // 彻底关闭时间选择模块 format: "d.m.Y", // 和Model中dd.MM.yyyy的格式对应 closeOnDateSelect: true, onSelect: function(dateText) { // 强制把输入框值设置为选中的纯日期文本,杜绝时间被自动追加 $(this).val(dateText); } });
2. 后台处理(可选)
因为你的Model字段是DateTime类型,即使前端传的是纯日期,ASP.NET绑定后还是会带上默认的00:00:00时间。如果业务上不需要这个时间,可以在Controller接收时只保留日期部分:
// 在你的Action方法里 model.DateTo = model.DateTo.Date;
适合ASP.NET的简易替代组件
如果觉得当前组件配置麻烦,推荐几个更省心的选项:
原生HTML5日期输入框(ASP.NET Core首选)
如果你用的是ASP.NET Core,直接用Tag Helper生成原生日期选择器,不需要额外引入JS/CSS,浏览器原生支持,自动处理Model绑定:<div class="form-group"> @Html.LabelFor(model => model.DateTo, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <input asp-for="DateTo" type="date" class="form-control" /> @Html.ValidationMessageFor(model => model.DateTo, "", new { @class = "text-danger" }) </div> </div>注:原生
type="date"的底层格式是yyyy-MM-dd,但ASP.NET会自动处理本地化显示,用户看到的是符合地区习惯的格式。Bootstrap Datepicker
基于Bootstrap的轻量级日期选择器,只专注日期选择,配置简单易上手:$("#DateTo").datepicker({ format: "dd.mm.yyyy", autoclose: true, // 选完日期自动关闭面板 todayHighlight: true // 高亮显示当天日期 });Flatpickr
无依赖(不需要jQuery)的现代日期选择器,体积小、性能好,支持多种自定义配置:flatpickr("#DateTo", { dateFormat: "d.m.Y", enableTime: false, closeOnSelect: true });
内容的提问来源于stack exchange,提问作者Sektor
相关产品推荐
相关产品推荐

