2012-02-08 80 views
2

在我的模型,我有:ASP.NET MVC3:显示格式正确日期与jQuery的DatePicker和editorFor/TextBoxFor

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

不幸的是,它仅适用于EditorFor,但我不能指定EditorFor类,以启用Jquery Datetime选取器,因为没有htmlAttributes参数。

@Html.EditorFor(model => model.StartDate) 
@Html.TextBoxFor(model => model.StartDate, new { @class = "datePicker", @readonly = "readonly" }) 

所以第一个只显示日期,但没有datepicker。 第二个显示时间也是00:00,但有一个datetimepicker。

注意:不只是说,使用model.StartDate.ToString("mm/DD/yyyy")。这是行不通的。

如何设置日期。但有一个时间选择器并只读,所以我不能在其中输入任何数字。

+1

我对MVC级解决方案感兴趣。我最终采用了标准的html输入元素来实现我自己的项目中的这种效果。 – 2012-02-08 15:32:03

回答

2

我使用jquery的UI日期选择器,它而不是附加的一类标签,我通过设置默认日期格式:

$(function() { 
     $.datepicker.setDefaults({ 
      dateFormat: 'dd/mm/yy' 
     }); 
    }); 

然后将其绑定到所述输入元件:

$(function() { 
     $("#StartDate").datepicker(); 
    }); 

希望有帮助。这就是EditorFor mvc标签。

+0

谢谢,是通过fieldname分配它似乎是唯一的方法,因为你似乎不能设置htmlattributes又名类。然后使用我的显示代码,它可以应用模型的格式,并通过这个使用datetimepicker。仍然不能设置只读。我的时间选择器是另一个问题。我用'@ Html.TextBoxFor(model => model.EndTime,new {@Value = Model.EndTime.ToString()。Substring(0,5),@class =“timePicker”,@readonly =“readonly” })'。疯狂 – Doomsknight 2012-02-08 16:17:56