2010-08-18 15 views
8

Tengo una aplicación en la que he estado utilizando xVal con éxito desde hace bastante tiempo. Se actualizó recientemente a MVC 2.xVal y ASP.Net MVC 2 AddModelStateErrors Problema

Utilizo los atributos estándar de DataAnnotaciones en mis modelos de dominio, que también implementan un método "Validate()" que llama al DataAnnotationsValidationRunner. Si hay algún error, ese método arroja una RuleException.

En mis controladores, utilizo la captura muy típico de RulesException

catch (RulesException e) 
{ 
    e.AddModelStateErrors(ModelState, "err"); 
} 

Todo lo típico, casi directamente de los ejemplos, y trabajando muy bien hasta hace poco (sospecho que los problemas comenzaron en el momento de mi MVC1 -> MVC2 update.

Así que el problema es este: cuando se llama al método AddModelStateErrors, obtengo una "System.EntryPointNotFoundException: no se encontró el punto de entrada", que proviene de System.Collections.Generic.ICollection 1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary 2 htmlAttributes) en System.Web.Mvc.Html.ValidationExtensions.ValidationMessage (HtmlHelper HtmlHelper, Cadena modelName, Cadena validationMessage, IDictionary`2 htmlAttributes) en ASP.views_user_edit_aspx .__ RenderContent2 ... {cortó, ya que es norma desde allí}

He mirado en tanto el código para el método de XVal y la HtmlHelper Extensión, y no puedo entender lo que está pasando.

¿Alguna idea?

+0

Alguna ves encontrar una solución a este problema? Estamos teniendo un problema similar al actualizar MVC 1 => MVC 3 – Dave

Respuesta

6

tiene el mismo problema, pero sólo lo resolvió: añada lo siguiente a web.config o app.config, para mover a 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 para 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> 
+0

gracias, esto solucionó un problema que estaba teniendo. Todavía no entiendo por qué lo solucionó porque estaba haciendo referencia al ensamblado de v2, pero poner en la redirección v3 resolvió el problema. –

Cuestiones relacionadas