У меня проблема с возвратом значения в моей ViewModel после обратной передачи с использованием JQuery datepicker.Обратная запись имеет правильную дату с группой форм StartDate, у которой нет нового атрибута html, прикрепленного к EditorFor.StopDate не отправляет обратно выбранную дату из-за атрибута htmlAttribute.Я бы предпочел не использовать скрытое поле для отправки данных обратно, так как я знаю, что это должно работать.У кого-нибудь есть предложения?
<div class="form-group" id="StartDate">
@Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.reportTimeEntries[0].StartDate, "","StartDate" )
@Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.StartDate)
</div>
</div>
<div class="form-group" id="StopDate">
@Html.LabelFor(model => model.StopDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.reportTimeEntries[0].StopDate, new { htmlAttributes = new { @class = "form-control date" } })
@Html.ValidationMessageFor(model => model.StopDate, "", new { @class = "text-danger" })
</div>
</div>
$('#StartDate .date').datepicker({
'format': 'mm/dd/yyyy',
'autoclose': true
});
$('#StopDate .date').datepicker({
'format': 'mm/dd/yyyy',
'autoclose': true
});
ОБНОВЛЕНИЕ Так что, похоже, это сработало, добавив это в мою ViewModel.Раздел Nullable, кажется, позволяет опубликовать дату. ViewModel
[DataType(DataType.DateTime)]
[Display(Name = "Stop Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> StopDate { get; set; }
Просмотр
<div class="form-group" id="StopDate">
@Html.LabelFor(model => model.StopDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.reportTimeEntries[0].StopDate, "","StopDate",new { htmlAttributes = new { @class = "form-control date" } })
@Html.ValidationMessageFor(model => model.StopDate, "", new { @class = "text-danger" })
</div>
</div>