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, IDictionary2 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?

È stato utile?

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top