web-dev-qa-db-fra.com

Html.ValidationSummary (false, "message") est toujours affiché, même au chargement de la page

J'utilise la validation côté client et je voudrais que le message ci-dessous ne s'affiche que lorsque j'ai une erreur. J'essaie d'utiliser ceci une erreur générale au cas où n'importe quel champ est invalide. 
Actuellement 

"* indique un champ obligatoire"

est toujours affiché même avant la validation.

<%: Html.ValidationSummary(false, "* denotes required field.")%>

J'utilise la liaison de modèle pour effectuer la validation côté client et MVC. 

41
Daniel M

Si vous utilisez un outil de développement dans votre navigateur pour examiner le texte récapitulatif de la validation, vous verrez qu'il contient la classe validation-summary-valid lorsqu'elle est claire, mais validation-summary-errors lorsqu'il y a des erreurs de formulaire.

Par conséquent, créez simplement une règle CSS comme suit:

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

et tout devrait être bon.

78
Ryan O'Neill

Je pense que le problème est le fait que le Html.ValidationSummary doit apparaître avant le.

4
Mark P

Au départ, je cherchais une propriété de liste au chargement de la page, donc j’ai pensé transmettre un nouveau modèle. Puis le récapitulatif de validation vient d’apparaître . Quand j’ai changé mon code de

return View(new myModel)

à

return View()

le résumé de validation n'apparaissait pas dans Get. J'ai également ajouté un contrôle nul sur le modèle lors de la vérification de la propriété afin de pouvoir utiliser ce dernier code.

0
Kristianne Nerona