Проверка ASP.NET MVC 5 и jquery ui datepicker

В приложении asp.net MVC у меня есть следующее свойство:

...
public System.DateTime StartTime { get; set; }
...

И в представлении (в форме):

<div class="form-group">
   @Html.LabelFor(model => model.StartTime, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
      @Html.EditorFor(model => model.StartTime, new { htmlAttributes = new { @class = "form-control" } })
      @Html.ValidationMessageFor(model => model.StartTime, "", new { @class = "text-danger" })
   </div>
</div>

в джаваскрипте:

$("#StartTime").datepicker({
    dateFormat: "dd/mm/yy",
});

Я получаю следующую ошибку с проверкой jquery по умолчанию для asp.net MVC:

Поле StartTime должно быть датой.

Я могу обрабатывать дату в формате dd/MM/YYYY без ошибок в asp.net MVC?


person Tom    schedule 14.12.2015    source источник
comment
Последнее предложение - это вопрос или утверждение?   -  person ataravati    schedule 14.12.2015
comment
Ваша ошибка возникает либо из-за того, что культура вашего сервера не принимает даты в формате dd/MM/yyyy, либо из-за того, что вы не изменили валидатор jQuery (по умолчанию он будет проверять даты на основе MM/dd/yyyy). Обратитесь к этот ответ для некоторых вариантов   -  person    schedule 15.12.2015


Ответы (1)


У меня была та же проблема, и ключом к проблеме был формат даты. Если вы используете формат по умолчанию, при отправке проблем не возникнет, но если вы измените его, возникнут проблемы с отправкой.

Решение, которое я нашел, заключалось в использовании altField и altFormat. С помощью datepicker вы можете иметь формат для отображаемого значения и альтернативное скрытое поле (altField) с другим форматом (altFormat). Чтобы использовать его, сделайте что-то вроде:

    $("#StartTime").datepicker({
    dateFormat: "dd/mm/yy",
    altField: $(this).val(),
    altFormat: "M/dd/yy"
    });
person Samuel A    schedule 18.12.2017