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.
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.
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.
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