我正在使用MVC 4和Razor 视图,并且无法理解为什么我的 Date 字段上的 Edit 视图没有正确绑定到内置的 jQuery datepicker。
该字段Date
在数据库和DateTime
域模型中属于数据类型。我不想显示时间,只显示日期。该字段是必需的并且需要格式化。
我的观点是这样的:
<div class="editor-label">
@Html.LabelFor(model => model.Appointment.EndDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Appointment.EndDate)
@Html.ValidationMessageFor(model => model.Appointment.EndDate)
</div>
如果我在此字段上的元数据是
[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")]
[DataType(DataType.Date)]
[Display(Name = "End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public object EndDate { get; set; }
那么我在edit.cshtml上的编辑器输出是这样的:
<input class="text-box single-line" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" type="date" value="05/09/2013">
这绘制了一个 jQuery 日期选择器,但没有设置值。
如果我从元数据中删除 DataType 属性并保持其他所有内容相同:
[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")]
[Display(Name = "End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public object EndDate { get; set; }
那么我的编辑器输出是这样的:
<input class="text-box single-line valid" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" **type="datetime"** value="05/09/2013">
这将绘制一个带有正确设置值的纯文本框(无日期选择器)。
我想使用 datepicker 但设置正确的值,我该怎么做?