2010-12-06 7 views
20

ASP.Net MVC 3 RC, RazorAsp.net MVC 3 RC - Razor ValidationMessageFor CustomMessage et ClientSideValidation problème

L'expérience des comportements inattendus lorsque je tente d'utiliser un message personnalisé et en utilisant la validation côté client. Le problème est qu'il affiche toujours le message personnalisé même s'il n'y a pas d'erreur. Donc, disons que j'ai un modèle client où le prénom est défini comme requis. Si j'ai le code suivant le message de validation n'est pas affiché jusqu'à ce que je clique sur Soumettre qui fonctionne comme prévu.

@Html.EditorFor(model => model.Client.FirstName) @Html.ValidationMessageFor(model => model.Client.FirstName) 

Mais maintenant que je veux personnaliser le message de validation à utiliser un astérisque comme ceci:

@Html.EditorFor(model => model.Client.FirstName) @Html.ValidationMessageFor(model => model.Client.FirstName, "*") 

Maintenant, même avant que je clique sur le bouton d'envoi, il y a toujours un astérisque à côté du champ .

Le comportement attendu est qu'il afficherait l'astérisque en cas d'erreur de validation.

Merci pour toute aide.

Répondre

25

J'ai trouvé le problème, le CSS suivant est nécessaire:

.field-validation-valid 
{ 
    display: none; 
} 
.validation-summary-valid 
{ 
    display: none; 
} 

Quelque part le long de mes refactoring ces classes a été conduits à. Ils sont là par défaut lorsque vous démarrez un nouveau projet MVC 3. J'espère que cela aidera quelqu'un dans le futur!

+4

Cela m'a aidé, je ne pouvais pas comprendre pourquoi ma validation a été montrée jusqu'à ce que j'ai vu ceci, merci! – mikelomaxxx14

+1

Oui, ça fonctionne comme un charme. Je vous remercie. –

1

La réponse choisie n'a pas fonctionné pour moi. Je devais utiliser ce qui suit. Notez que la classe est "error", pas "valide". Cela masque le message de validation affiché au chargement de la page.

<style> 
.field-validation-error 
{ 
    display: none; 
} 
.validation-summary-valid 
{ 
    display: none; 
} 

</style> 
Questions connexes