Pergunta

Eu tenho um campo DateTime no meu modelo que é mostrado em uma forma na minha opinião assim:

<div class="editor-field">
    @Html.EditorFor(model => model.Age)
    @Html.ValidationMessageFor(model => model.Age)
</div>

Quando um novo modelo é criado e inserido no meu banco de dados, eu atribuo um valor de 09/11/1990 15:36:22. Se eu tentar editar este modelo usando minha visão e não alterar o valor de Age Para o meu modelo, o modelo é validado e quaisquer alterações em outros campos são aceitas e salvas. No entanto, se eu mudar o Age campo para 07/27/2010 15:36:22 Estou recebendo um erro de validação " The value '07/27/2010 15:36:22' is not valid for Age. Mas a data 09/12/2010 15:36:22 é validado com sucesso. Alguma razão pela qual isso está acontecendo? No depurador, o valor retornado para datas inválidas é 01/01/0001.

EDIT: Eu acho que isso tem a ver com a cultura do Validato JQuery e do meu sistema, já que a validação do lado do cliente falha em qualquer data que esteja no formato DD/mm/AAAA, enquanto a validação do lado do servidor está falhando em qualquer data que esteja em mm Formato/dd/yyyy.

Foi útil?

Solução

Supondo que você queira fazer o modelo funcionar no lado do cliente, eu mudaria as configurações de globalização do ASP .NET para forçar o sistema a usar a globalização desejada. Esta é apenas uma solução válida se você espera que os clientes usem seu sistema que use um formato de hora de data consistente.

O problema que você encontrou (eu acho) é que alguns navegadores não são consistentes com a globalização de que usam o lado do cliente e a globalização que eles apresentam ao mundo em geral.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top