xVal et ASP.Net MVC 2 AddModelStateErrors Problème
-
29-09-2019 - |
Question
J'ai une application que je l'ai utilisé avec succès sur xVal depuis un certain temps. Il a été récemment mis à jour MVC 2.
J'utilise les attributs standard DataAnnotations sur mes modèles de domaine, qui mettent en œuvre aussi un « Valider () » méthode qui appelle la DataAnnotationsValidationRunner. S'il y a des erreurs, cette méthode jette un RulesException.
Dans mes contrôleurs, j'utilise les prises très typique pour RulesException
catch (RulesException e)
{
e.AddModelStateErrors(ModelState, "err");
}
Toutes les choses typiques, presque directement à partir des exemples, et bien travailler jusqu'à récemment (je soupçonne que les problèmes ont commencé au moment de mon MVC1 -.> Mise à jour MVC2
Le problème est le suivant: Quand la méthode AddModelStateErrors est appelée, je reçois un « System.EntryPointNotFoundException: Point d'entrée n'a pas été trouvé », qui vient de System.Collections.Generic.ICollection1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary
2 htmlAttributes) à System.Web .Mvc.Html.ValidationExtensions.ValidationMessage (HtmlHelper HtmlHelper, String modelName, String ValidationMessage, IDictionary`2 htmlAttributes) à ASP.views_user_edit_aspx .__ RenderContent2 ... {ciselée, comme il est la norme à partir de là}
Je l'ai regardé à la fois le code pour la méthode de xVal et l'extension HtmlHelper, et je ne peux pas sembler comprendre ce qui se passe.
Toutes les idées?
La solution
a le même problème, mais juste a résolu le problème: ajouter ce qui suit à web.config ou app.config, pour passer à MVC2:
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
ou MVC3:
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>