Formatar datetime no asp.net mvc 4
Como posso forçar o formato de datetime no asp.net mvc 4? No modo de exibição, mostra como eu quero, mas no modelo de edição não. Eu estou usando displayfor e editorfor e applyformatineditmode = true com dataformatstring = "{0: dd / MM / yyyy}" O que eu tentei:
globalização em web.config (ambos) com minha cultura e uicultura.modificando a cultura e a agricultura em application_start ()modelbinder personalizado para datetimeEu não tenho idéia de como forçá-lo e eu preciso inserir a data como dd / mm / aaaa não o padrão.
MAIS INFO: meu viewmodel é assim
[DisplayName("date of birth")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Birth { get; set; }
em vista eu uso@Html.DisplayFor(m=>m.Birth)
mas isso funciona como esperado (eu vejo a formatação) e para inserir a data que eu uso@Html.EditorFor(m=>m.Birth)
mas se eu tentar e introduzir algo como 13/12/2000 é falha com o erro que não é uma data válida (12/13/2000 e 2000/12/13 estão funcionando como esperado, mas eu preciso dd / MM / aaaa) .
O modelbinder personalizado é chamado em application_start () b / c, não sei onde mais.
Usando<globalization/>
Eu tentei comculture="ro-RO", uiCulture="ro"
e outras culturas que me dariam dd / MM / aaaa. Eu também tentei defini-lo em uma base por thread em application_start () (há muitos exemplos aqui, sobre como fazer isso)
Por tudo o que vai ler esta pergunta: Parece que a resposta de Darin Dimitrov vai funcionar, desde que eu não tenha validação do cliente. Outra abordagem é usar a validação personalizada, incluindo a validação do lado do cliente. Fico feliz por descobrir isso antes de recriar o aplicativo inteiro.