formatar data e hora nos clientes envia o valor padrão da data na postagem do formulário
Estou tentando seguireste exemplo aplicar corretamente o formato de data e hora
Eu tenho o modelo de exibição que contém a propriedade datetime
public class MyViewModel {
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy HH:mm:ss}")]
public DateTime Starting { get; set; }
}
visão interna eu tenho forma
@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>
}
e na mesma página na seção de scripts
<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>
O formato da data é aplicado corretamente, mas após o envio do formulário noHttpPost
ação dentro do controlador que estou recebendoMyViewModel.Starting
com valor padrão01/01/0001
não aquele que está selecionado na vista. O que estou fazendo de errado?
Editar: adicionado ao 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;
}