xVal e ASP.Net MVC 2 AddModelStateErrors problema
-
29-09-2019 - |
Domanda
Ho una domanda che ho usato con successo su xVal per un bel po 'di tempo. E 'stato recentemente aggiornato per MVC 2.
Io uso le DataAnnotations standard di attributi sui miei modelli di dominio, che implementano anche un metodo "validate ()" che chiama la DataAnnotationsValidationRunner. Se ci sono errori, che metodo genera un RulesException.
Nei miei controllori, io uso la cattura molto tipico per RulesException
catch (RulesException e)
{
e.AddModelStateErrors(ModelState, "err");
}
Tutta roba tipica, quasi retta dagli esempi, e lavorando bene fino a poco tempo (ho il sospetto che i problemi sono iniziati al momento della mia MVC1 -.> Aggiornamento MVC2
Quindi il problema è questo: Quando il metodo AddModelStateErrors viene chiamato, sto diventando un "System.EntryPointNotFoundException: Punto di ingresso non è stato trovato", che è venuta da System.Collections.Generic.ICollection1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary
2 htmlAttributes) a System.Web .Mvc.Html.ValidationExtensions.ValidationMessage (HtmlHelper HtmlHelper, String ModelName, String validationMessage, IDictionary`2 htmlAttributes) a ASP.views_user_edit_aspx .__ RenderContent2 ... {snipped, come è normale da lì}
Ho guardato sia il codice per il metodo di xVal e l'estensione HtmlHelper, e io non riesco a capire cosa sta succedendo.
Tutte le idee?
Soluzione
ha lo stesso problema, ma appena risolto: aggiungere la seguente al web.config o app.config, per il passaggio alla 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>
o per 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>