很久以前我发现将DatePicker附加到日期字段的最佳方法是使用EditorTemplate DateTime.cshtml:
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
在jQuery脚本中:
$(function() {
$(".datePicker")
.datepicker({ showOn: 'both', dateFormat: 'dd/mm/yy', changeMonth: true, changeYear: true })
.next('button.ui-datepicker-trigger')
.attr("tabIndex", "-1");
$('.page').offset({ top: 10 });
});
之前总是有效,但现在我正在使用VS 2015和MVC5我发现它适用于这个领域;
public System.DateTime GivenDate { get; set; }
但不是可以为空的那个:
public Nullable<System.DateTime> StartDate { get; set; }
在IE开发人员工具中,我发现标记转换来自
@Html.EditorFor(model => model.contract.GivenDate)
@Html.EditorFor(model => model.contract.StartDate)
到
<input name="contract.GivenDate" class="datePicker hasDatepicker" id="contract_GivenDate" type="text" value="">
<input name="contract.StartDate" class="text-box single-line" id="contract_StartDate" type="date" value="">