Usuário com melhor resposta
Validação de data com Data Annotation

Pergunta
-
Ola,
qual seria a maneira correta de validar uma data usando mvc + ef + data annotation ?
pois se eu envio uma string ou uma data errada retorna um erro generico
"The value '20/20/2222' is not valid for"
onde eu mudo esse erro ?
[Required(ErrorMessage = "Uma data de nascimento deve ser informada." )] [RegularExpression("^([0-9]{1,2})/([0-9]{1,2})/([0-9]{4,4})$" , ErrorMessage = "Uma data de nascimento válida deve ser informada" )] [DisplayName("Data de Nascimento" )] [DataType(DataType.Date,ErrorMessage="Uma data válida deve ser informada" )] public object DataNascimento { get ; set ; }
Respostas
-
Olá Marcelo,
Você pode alterar essa mensagem padrão passando um mensagem personalizada para o ValidationMessage, por exemplo:
<div class="editor-label"> <%= Html.LabelFor(model => model.Data) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(model => model.Data)%> <%= Html.ValidationMessageFor(model => model.Data, "Uma data de nascimento válida deve ser informada.")%> </div>
Eu testei a sua RegularExpression e não funcionou legal, se você mudar o tipo da sua propriedade de object para DateTime você pode retirar essa RegularExpression da sua propriedade, que tudo ira funcionar perfeitamente.
Abraços,
Daniel Fonseca Castro
www.danielfonsecacastro.com.br
- Marcado como Resposta André Borges MedeirosModerator domingo, 3 de abril de 2011 16:12
Todas as Respostas
-
Olá Marcelo,
Você pode alterar essa mensagem padrão passando um mensagem personalizada para o ValidationMessage, por exemplo:
<div class="editor-label"> <%= Html.LabelFor(model => model.Data) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(model => model.Data)%> <%= Html.ValidationMessageFor(model => model.Data, "Uma data de nascimento válida deve ser informada.")%> </div>
Eu testei a sua RegularExpression e não funcionou legal, se você mudar o tipo da sua propriedade de object para DateTime você pode retirar essa RegularExpression da sua propriedade, que tudo ira funcionar perfeitamente.
Abraços,
Daniel Fonseca Castro
www.danielfonsecacastro.com.br
- Marcado como Resposta André Borges MedeirosModerator domingo, 3 de abril de 2011 16:12
-
-
estou tentando validar uma data do tipo DateTime no client-side usando data annotations mas não estou conseguindo ja tentei usar o extensions mas só funciona se o atributo for do tipo string pensei em fazer usando remote validation com json mas não tenho nenhuma experiência do tipo com ele gostaria de ajuda