使用jQuery UI DatePicker的MVC EditorTemplate不适用于可为空的日期字段

时间:2016-12-14 16:22:48

标签: jquery asp.net-mvc jquery-ui-datepicker

很久以前我发现将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="">

0 个答案:

没有答案