J'ai une méthode d'aide dans ma vue qui restitue la totalité du formulaire de manière dynamique. Maintenant, je veux ajouter un support pour la validation des clients disponible dans Asp.Net MVC RC 2.KeyNotFound Exception lors de l'appel dynamique de Html.ValidationSummary() via la méthode d'assistance
Voici le code que j'utilise pour afficher le champ Résumé de la validation sur le formulaire.
_viewPage.Html.EnableClientValidation();
MvcHtmlString validationSummary = _viewPage.Html.ValidationSummary("There are errors on this form. Please contact your administrator.");
if (validationSummary != null && validationSummary.ToString() != "")
Response.Write(validationSummary.ToString());
Lorsque le code atteint ce point, j'obtiens l'erreur suivante.
System.Collections.Generic.KeyNotFoundException was unhandled by user code
Message = "La clé donnée n'était pas présente dans le dictionnaire." Source = "Système" StackTrace: à System.ThrowHelper.ThrowKeyNotFoundException() à System.Collections.Generic.SortedDictionary 2.get_Item(TKey key) at System.Web.Mvc.Html.ValidationExtensions.ValidationSummary(HtmlHelper htmlHelper, Boolean excludePropertyErrors, String message, IDictionary
2 htmlAttributes) à System.Web.Mvc.Html.ValidationExtensions.ValidationSummary (HtmlHelper HtmlHelper, String message , IDictionary`2 htmlAttributes) à Fusion.UI.MvcWebUX.Helper.FormGenerator.GenerateFormValidation() dans D: \ EBS \ Project.Fusion \ Fusion.UI.MvcWebUX \ Helper \ FormGenerator.cs: ligne 88 à Fusion.UI .MvcWebUX.Helper.FormGenerator.GenerateForm() dans D: \ EBS \ Project.Fusion \ Fusion.UI.MvcWebUX \ Helper \ FormGenerator.cs: ligne 70 à Fusion.UI.MvcWebUX.Helper.FormGenerator.RenderForm (ViewPage viewPage) dans D: \ EBS \ Project.Fusion \ Fusion.UI.MvcWebUX \ Helper \ FormGenerator.cs: ligne 60 à ASP.views_shared_autoview_aspx .__ RenderContent2 (HtmlTextWriter __w, Control parameterContainer) dans d: \ EBS \ Projet.Fusion \ Fusion.UI.MvcWebUX \ Views \ Partagé \ AutoView.aspx: ligne 7 à System.Web.UI.Control. RenderChildrenInternal (écrivain HtmlTextWriter, les enfants ICollection) à System.Web.UI.Control.RenderChildren (écrivain HtmlTextWriter) à System.Web.UI.Control.Render (écrivain HtmlTextWriter) à System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) à System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter, adaptateur ControlAdapter) à System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) à ASP.views_shared_fusion_master .__ Render__control1 (HtmlTextWriter __W, Contrôle parameterContainer) dans d: \ EBS \ Project.F usion \ Fusion.UI.MvcWebUX \ Views \ Partagé \ Fusion.Master: ligne 74 à System.Web.UI.Control.RenderChildrenInternal (écrivain HtmlTextWriter, enfants ICollection) à System.Web.UI.Control.RenderChildren (HtmlTextWriter writer) à System.Web.UI.Control.Render (écrivain HtmlTextWriter) à System.Web.UI.Control.RenderControlInternal (HtmlTextWriter écrivain, adaptateur ControlAdapter) à System.Web.UI.Control.RenderControl (HtmlTextWriter writer, ControlAdapter adaptateur) à System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) à System.Web.UI.Control.RenderChildrenInternal (écrivain HtmlTextWriter, les enfants ICollection) à System.Web.UI.Control.RenderChildren (écrivain HtmlTextWriter) à System.Web.UI.Page.Render (HtmlT extWriter écrivain) à System.Web.Mvc.ViewPage.Render (écrivain HtmlTextWriter) à System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) à System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter , adaptateur ControlAdapter) à System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException:
J'ai du mal avec cela pour quelques heures. Quelqu'un peut-il m'aider à le résoudre et me dire pourquoi cela se produirait-il?
J'ai trouvé le problème. J'avais défini EnableClientValidation après avoir écrit BeginForm. Il suffit d'écrire _viewPage.Html.EnableClientValidation(); avant tout sur le formulaire et l'erreur a été résolue. Merci, – Huzefa