J'utilise Telerik MVC Grid. Dans ma table, j'ai une clé unique définie pour un champ. Et dans le contrôleur, j'attrape l'erreur en utilisant Essayer ... Catch à l'intérieur de dbupdateException.
dans le bloc de capture, je veux gérer l'erreur et montrer une erreur de messagerie en vue. Ainsi, en utilisant la ligne suivante, p> mais cela ne montre pas le message d'erreur. Une idée pourquoi? P> p>
3 Réponses :
Assurez-vous que vous avez un validationMessage code> dans votre vue avec la même clé: @Html.ValidationMessage("PROGRAM_ID")
Oh alors je suppose que vous ajoutez l'erreur de modèle à la mauvaise clé. Vous avez probablement un tableau de ces identifiants. Quelque chose comme modelstate.addmodelerror ("Somécollection [2] .program_id" "," L'accès de ce programme existe déjà. "); Code>. Bien sûr, tout cela dépendra de vos modèles.
Non .. Je double coché ... Le nom de la propriété est correct et son champ de valeur unique n'est pas un tableau ..
validationsMumary ne fera que afficher des modèles pour String.empty comme clé. Pour afficher une erreur ajoutée avec ModelState.addmodelError dans votre validationGummary, modifiez votre code sur:
ModelState.AddModelError(string.Empty, "Access for this program already exists.");
Suivez 2 étapes: (comme suggère Darin) 1. Dans le code du contrôleur Ajouter: ModelState.addModelerror ("Program_ID", "Erreur MSG"); 2. Vue: @ html.validationmessage ("programme_id")
Suivez 2 étapes: (fonctionne de solution de Darin) P>
modelstate.addmodelerror ("émission" msg d'erreur "); code> li>
- in View Ajouter:
@ html.validationMessage ("programme_id") code> li>
ol>
Avez-vous la propriété avec nom "programme_id" dans votre modèle aussi? et assurez-vous que vous avez l'appel d'assistant de validation comme suggéré par Darin