Как я могу сказать моему контроллеру/модели, какую культуру он должен ожидать для синтаксического анализа даты и времени?
Я использовал некоторый этот пост, чтобы реализовать 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>
}
Я создал для этого шаблон редактирования, чтобы реализовать jquery 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; }
}
Изменить: эта ссылка объясняет мою проблему и очень хорошее решение для нее. Благодаря gdoron