форматирование даты и времени на клиентах отправляет значение даты по умолчанию в форме сообщения
Я пытаюсь следоватьэтот пример правильно применять формат даты и времени
У меня есть модель просмотра, которая содержит свойство datetime
public class MyViewModel {
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy HH:mm:ss}")]
public DateTime Starting { get; set; }
}
вид изнутри у меня есть форма
@using (Html.BeginForm(null, null, null, FormMethod.Post, new { @id = "myForm", @name = "myForm" }))
{
...
<div class="form-group">
@Html.LabelFor(model => model.Starting, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Starting, new { htmlAttributes = new { @class = "dateTimePicker" } })
@Html.ValidationMessageFor(model => model.Starting, "", new { @class = "text-danger" })
</div>
</div>
}
и на той же странице внутри раздела скриптов
<script>
jQuery.validator.addMethod("MyDateTimeFormat", function (value, element) {
return Date.parseExact(value, "dd.MM.yyyy HH:mm:ss");
}, "Please provide correct datetime format!");
var form = $("#myForm");
form.validate({
rules: {
Starting: { MyDateTimeFormat: true }
}
});
$("#myForm").submit(function () {
if (form.valid())
alert("The form is valid: \n" + Date.parse($("#Starting").val()));
$("#Starting").val() = Date.parse($("#Starting").val());
else {
alert("Valid: " + form.valid());
}
});
</script>
Формат даты применяется правильно, но после отправки формы наHttpPost
действие внутри контроллера я получаюMyViewModel.Starting
со значением по умолчанию01/01/0001
не тот, который выбран при взгляде. Что я делаю не так?
Изменить: добавлено в Global.asax.cs
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string cultureName = CultureHelper.GetImplementedCulture("de-DE");
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
}