Usuário com melhor resposta
Data Annotations DataType

Pergunta
-
Bem pessoal, criando um formulário em mvc, e minha classe possui algumas Data Annotations, todas, ou quase, funcionando corretamente. Na propriedade de E-mail de minha classe coloquei o atributo
[DataType(DataType.EmailAddress, ErrorMessage = "E-mail Inválido.")]
Só que não acontece nada, dei uma pesquisada, mas tudo que encontrei, falava que está correto, e o DataType não faz validação, correto? Mas então pra que serve, como validar o E-mail?
Os outros atributos de Data Annotations estão funcionando corretamente.
Valeu!
Alexsandre Rodrigues de Almeida - MCTS .NET Framework - Web Applications
E-mail: alexsandrer@gmail.com
Twitter: @AlexRAlmeida
Respostas
-
Fala Alexsandre,
Realmente o DataType (estranhamente, por sinal) não faz a validação do tipo... Ele é utilizado para formatar o valor ao ser exibido em alguns casos... Veja:
"Even though [DataType] looks like a validation attribute along with the others in Data Annotations,
ASP.NET MVC does not treat it as one, so don’t expect [DataType(DataType.EmailAddress)] to validate for legal
e-mail addresses! [DataType] is an anomaly ; even though it inherits from
System.ComponentModel.DataAnnotations.ValidationAttribute, its IsValid() method is hard-coded to
return true regardless of the property’s value. Microsoft has explained that [DataType] is only meant to serve as
a hint for formatting data in a scaffolded UI , though it still seems strange that it inherits from
ValidationAttribute."Para validar o e-mail, eu utilizo o atributo [RegularExpression].
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Sugerido como Resposta Buzios terça-feira, 9 de novembro de 2010 12:53
- Marcado como Resposta Alexsandre terça-feira, 9 de novembro de 2010 19:50
-
Olá Alexsandre...
No blog do Scott Gu's ele apresenta um exemplo ótimo para validação de e-mails. Melhor do que se eu tentasse explicar aqui pra você. Dá uma olhadinha lá e qualquer dúvida poste novamente: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx.
Abraço,
Fabrício- Sugerido como Resposta Buzios terça-feira, 9 de novembro de 2010 12:53
- Marcado como Resposta Alexsandre terça-feira, 9 de novembro de 2010 19:50
Todas as Respostas
-
Fala Alexsandre,
Realmente o DataType (estranhamente, por sinal) não faz a validação do tipo... Ele é utilizado para formatar o valor ao ser exibido em alguns casos... Veja:
"Even though [DataType] looks like a validation attribute along with the others in Data Annotations,
ASP.NET MVC does not treat it as one, so don’t expect [DataType(DataType.EmailAddress)] to validate for legal
e-mail addresses! [DataType] is an anomaly ; even though it inherits from
System.ComponentModel.DataAnnotations.ValidationAttribute, its IsValid() method is hard-coded to
return true regardless of the property’s value. Microsoft has explained that [DataType] is only meant to serve as
a hint for formatting data in a scaffolded UI , though it still seems strange that it inherits from
ValidationAttribute."Para validar o e-mail, eu utilizo o atributo [RegularExpression].
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Sugerido como Resposta Buzios terça-feira, 9 de novembro de 2010 12:53
- Marcado como Resposta Alexsandre terça-feira, 9 de novembro de 2010 19:50
-
Olá Alexsandre...
No blog do Scott Gu's ele apresenta um exemplo ótimo para validação de e-mails. Melhor do que se eu tentasse explicar aqui pra você. Dá uma olhadinha lá e qualquer dúvida poste novamente: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx.
Abraço,
Fabrício- Sugerido como Resposta Buzios terça-feira, 9 de novembro de 2010 12:53
- Marcado como Resposta Alexsandre terça-feira, 9 de novembro de 2010 19:50
-
Valeu André.. como suspeitava.. so queria ter certeza..
Valeu tbm Fabrício, o post do Scott Gu's me ajudou muito.. Valeu!!
Alexsandre Rodrigues de Almeida - MCTS .NET Framework - Web Applications
E-mail: alexsandrer@gmail.com
Twitter: @AlexRAlmeida