Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Personalização de validação de campo decimal

Como posso personalizar uma mensagem de validação sem ser na anotação required? por exemplo tenho campo do tipo decimal no meu form .A validação funciona falando que eu tenho que digitar um número só que isso aparece em inglês.

4 respostas

Walisson você pode personalizar o Data Annotation para que as mensagens apareçam de acordo com o seu texto em português usando na anotação o valor ErrorMessage.

http://msdn.microsoft.com/pt-br/library/jj129537.aspx

solução

Olá Walisson

Como o Pablo respondeu, para customizar as mensagens de validação que são mostradas na view utilizamos a propriedade ErrorMessage das anotações de validação.

Mas no Asp.Net MVC nem toda validação pode ser configurada pelas anotações, quando temos no modelo um campo que não é do tipo String o Model Binder precisa fazer a conversão de tipos antes de preencher os modelos que serão passados para o controller, se a conversão falhar o Model Binder adiciona um novo erro de validação padrão para o seu modelo e a mensagem desse erro de conversão não pode ser customizada através das anotações.

Para customizar as mensagens de erro do model binder, você precisa criar dentro da sua aplicação uma pasta chamada App_GlobalResources e dentro dessa pasta você precisa criar um Resource File (como descrito no curso de Razor: http://alura.com.br/cursos-online-csharp#razor) que pode ter qualquer nome, por exemplo, ModelBinderMessages.resx.

Dentro desse arquivo, você precisa definir a mensagem de validação que será mostrada caso ocorra um erro de conversão para algum campo na chave PropertyValueInvalid e depois você precisa avisar o Asp.Net MVC que as mensagens do ModelBinder serão buscadas no arquivo ModelBinderMessages.resx. Para isso, dentro do método Application_Start do arquivo Global.asax, você precisa colocar a seguinte linha:

DefaultModelBinder.ResourceClassKey = "ModelBinderMessages";

Walisson

Seu problema foi resolvido?

Foi sim ,Obrigado Pessoal

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software