Я использую Twitter Bootstrap Datepicker https://github.com/eternicode/bootstrap-datepicker внутри мое приложение MVC 5. Он подключен к текстовому полю в представлении под названием Selector.
Селектор представлений
@model STAR.UI.ViewModels.ReportSelectorViewModel
<script>
$(document).ready(function () {
$('.datepicker').datepicker({
autoclose: true,
format: "dd/mm/yyyy",
daysOfWeekDisabled: "5,6"
});
});
</script>
@Html.TextBoxFor(m => m.StartDate, new { @class = "datepicker" })
Когда пользователь выбирает дату, она отображается в текстовом поле в формате даты в Великобритании дд/мм/гггг. Это верно. Затем пользователь может нажать кнопку отправки, которая отображает данные на другой странице. На этой странице есть кнопка «Назад», которая возвращает пользователя обратно в представление выбора, где он может выбрать другую дату. Однако мне также хотелось бы, чтобы когда пользователь нажимал кнопку «Назад», его текущий выбор даты также возвращался в текстовое поле.
Кнопка "Назад"
@Html.ActionLink("<<< Go Back", "Selector", "Reports", new { startDate = Model.StartDate }, new { @class = "btn btn-outline btn-primary" })
Кнопка «Назад» передает выбранную дату начала обратно в действие селектора в моем контроллере, и затем я присваиваю это значение модели представления, а затем модель представления передается обратно в представление селектора.
Действие селектора (в контроллере)
public ActionResult Selector(DateTime? startDate)
{
ReportSelectorViewModel model = new ReportSelectorViewModel();
model.StartDate = startDate;
return View(model);
}
Свойство StartDate в ReportSelectorViewModel имеет тип DateTime?
Проблема в том, что когда дата возвращается в текстовое поле, она находится в формате мм/дд/гггг вместо нужного мне британского формата, т.е. дд/мм/гггг.
Я пытался поместить этот код над свойством StartDate в ReportSelectorViewModel, но это не помогает.
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? StartDate { get; set; }
Кто-нибудь может помочь с этим?
Спасибо.
ОБНОВЛЕНИЕ
Мой HTML-код для StartDate
<div class="form-group">
<input class="datepicker" data-val="true" data-val-date="The field StartDate must be a date." data-val-required="Please select a Start Date" id="StartDate" name="StartDate" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="StartDate" data-valmsg-replace="true"></span>
</div>