10
votes

Modelstate.addmodelerror ne montre aucun message

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, xxx

mais cela ne montre pas le message d'erreur. Une idée pourquoi?


1 commentaires

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


3 Réponses :


12
votes

Assurez-vous que vous avez un validationMessage code> dans votre vue avec la même clé:

@Html.ValidationMessage("PROGRAM_ID")


2 commentaires

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à. "); . 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 ..



12
votes

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.");


1 commentaires

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")



0
votes

Suivez 2 étapes: (fonctionne de solution de Darin)

  1. in contrôleur ajout: modelstate.addmodelerror ("émission" msg d'erreur ");
  2. in View Ajouter: @ html.validationMessage ("programme_id")

0 commentaires