使用Jquery Datepicker的DateFormat错误
我想在DateTime文本框中排除time
部分,但我无法按照我想要的方式使其工作。
这是我设置字段的方式:
@Html.TextBoxFor(m => m.DateFrom, "{0:dd/MM/yyyy}", new { @class = "datefrom" }) @Html.TextBoxFor(m => m.DateTo, "{0:dd/MM/yyyy}", new { @class = "dateto" })
Jquery脚本:
$(function () { $(".datefrom").datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 1, dateFormat: "dd/mm/yy", onClose: function (selectedDate) { $("#to").datepicker("option", "minDate", selectedDate); } }); $(".dateto").datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 1, dateFormat: "dd/mm/yy", onClose: function (selectedDate) { $("#from").datepicker("option", "maxDate", selectedDate); } }); });
现在我有这些问题:
-
time
总是出现在现场:
-
date format
错误:我的格式是dd / MM / yyyy,日期是November 8th 2014
但现在日期选择器“认为”是August 10th 2014
。 因此,当我从datepicker中选择格式为dd/MM/yyyy
的任意日期时,asp.net将使用格式MM/dd/yyyy
我试过的:
-
我尝试使用
DataAnnotations
:[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
:没有工作 -
我试图删除Jquery脚本,但没有工作
P / s:虽然日期time
文本框包含第一次加载时的time
部分,但是从日期选择器中选择日期后, time
部分消失了,但日期格式错误,如上所述:
您的日期未正确绑定的原因是您的日期选择器使用的是dd/MM/yyy
格式,但您的服务器使用的是MM/dd/yyyy
格式。 要使其工作,您可以创建自定义模型绑定器来处理DateTime
值并将其解析为所需的格式。
public class CustomDateTimeBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); CultureInfo culture = new CultureInfo("en-GB"); // dd/MM/yyyy var date = value.ConvertTo(typeof(DateTime), culture); return date; } }
并在Global.asax
注册它(这意味着它将适用于所有DateTime
值
ModelBinders.Binders.Add(typeof(DateTime), new YourAssembly.CustomDateTimeBinder());
- “jquery.unobtrusive-ajax.js”过时了吗?
- WebAPI Put返回HTTPResponseMessage null
- 为什么Asp.Net MVC 5将@ Scripts.Render(“〜/ bundles / jquery”)放在_Layout.cshtml的底部?
- Jquery ajax调用不会访问控制器:无法加载资源:服务器响应状态为500(内部服务器错误)
- 单击按钮,以mvcforms触发模式弹出窗口
- Ajax json到MVC5控制器:传递包含集合的对象
- DateTimePicker的validation无法正常工作
- 带字幕的多图像文件上传
- 将html表导出为CSV文件,始终返回空文件