ASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期
Posted
技术标签:
【中文标题】ASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期【英文标题】:ASP.NET MVC3: Displaying Date in correct format with JQuery DatePicker and editorFor/TextBoxFor 【发布时间】:2012-03-01 01:30:41 【问题描述】:在我的模型中,我有:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0:dd/MM/yyyy")]
public DateTime StartDate get; set;
不幸的是,它仅适用于 EditorFor,但我无法分配 EditorFor 类来启用 Jquery 日期时间选择器,因为没有 htmlAttributes
参数。
@Html.EditorFor(model => model.StartDate)
@Html.TextBoxFor(model => model.StartDate, new @class = "datePicker", @readonly = "readonly" )
所以第一个只显示日期,但没有日期选择器。 第二个也显示时间 00:00 但有一个日期时间选择器。
注意:不要只是说,使用model.StartDate.ToString("mm/DD/yyyy")
。它不起作用。
我怎样才能只设置日期。但是有一个时间选择器并且有只读的,所以我不能在里面输入任何数字。
【问题讨论】:
我对 MVC 级别的解决方案感兴趣。我最终在我自己的项目中使用标准的 html 输入元素来实现这种效果。 【参考方案1】:我正在使用 jquery UI 日期选择器,而不是附加一个类标签,我通过以下方式设置默认日期格式:
$(function ()
$.datepicker.setDefaults(
dateFormat: 'dd/mm/yy'
);
);
然后将其绑定到输入元素:
$(function ()
$("#StartDate").datepicker();
);
希望对您有所帮助。这就是 EditorFor mvc 标签上的内容。
【讨论】:
谢谢,是的,通过字段名分配它似乎是唯一的方法,因为您似乎无法设置 htmlattributes aka 类。然后使用我的显示代码,它可以应用模型的格式,并通过它使用 datetimepicker。虽然仍然无法设置只读。我的时间选择器是另一个问题。我用@Html.TextBoxFor(model => model.EndTime, new @Value = Model.EndTime.ToString().Substring(0,5), @class = "timePicker", @readonly = "readonly" )
克服了这个问题。疯狂以上是关于ASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期的主要内容,如果未能解决你的问题,请参考以下文章
如果asp.net mvc3中的大小超过4mb,则无法上传文件[重复]
自定义 asp.net mvc 3 jquery.validate.unobtrusive