Как я могу сказать своему контроллеру / модели, какую культуру следует ожидать для анализа даты и времени?
Я использовал некоторые из этого поста для реализации jquery datepicker в моем приложении mvc.
Когда я отправляю дату, она «теряется в переводе», я не использую форматирование даты в США, поэтому, когда оно отправляется на мой контроллер, оно просто становится нулевым.
У меня есть форма, в которой пользователь выбирает дату:
@using (Html.BeginForm("List", "Meter", FormMethod.Get))
{
@Html.LabelFor(m => m.StartDate, "From:")
<div>@Html.EditorFor(m => m.StartDate)</div>
@Html.LabelFor(m => m.EndDate, "To:")
<div>@Html.EditorFor(m => m.EndDate)</div>
}
Я сделал для этого шаблон редактирования, чтобы реализовать Jickery DatePicker:
@model DateTime
@Html.TextBox("", Model.ToString("dd-MM-yyyy"), new { @class = "date" })
Затем я создаю виджеты DatePicker, как это.
$(document).ready(function () {
$('.date').datepicker({ dateFormat: "dd-mm-yy" });
});
Все это прекрасно работает.
Вот где начинаются проблемы, это мой контроллер:
[HttpGet]
public ActionResult List(DateTime? startDate = null, DateTime? endDate = null)
{
//This is where startDate and endDate becomes null if the dates dont have the expected formatting.
}
Вот почему я хотел бы как-то сказать своему контролеру, какую культуру ему следует ожидать?
Моя модель не так? Могу ли я как-то сказать, какую культуру использовать, например, с атрибутами аннотации данных?
public class MeterViewModel {
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime EndDate { get; set; }
}
Редактировать: эта ссылка объясняет мою проблему и очень хорошее решение, а также. Благодаря Гдорон