Pregunta

Tengo una solución asp.net mvc más antigua (s#arp framework) con dos proyectos, uno para web y otro para controlador.Cambié el dll a las últimas versiones (2.0) para System.Web.MVC y Microsoft.Web.MVC.También ajusté mi Web.Config:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

¿Es esto (en teoría) todo lo que tengo que hacer?

La solución funciona bien pero aparece este error:

Se intentó acceder a un elemento como un tipo incompatible con la matriz.Descripción:Se produjo una excepción no controlada durante la ejecución de la solicitud web actual.Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de excepción:System.ArrayTypeMismatchException:Se intentó acceder a un elemento como un tipo incompatible con la matriz.

Error de fuente:

Línea 32:Línea 33:ViewEngines.Engines.Clear();Línea 34:ViewEngines.Engines.Add(nuevo AreaViewEngine());Línea 35:Línea 36:ModelBinders.Binders.DefaultBinder = nuevo SharpModelBinder();

Es posible que esto no esté relacionado con el conmutador mvc sino con el marco s#arp.¿Algunas ideas?Gracias.

Los mejores deseos,

cristiano

¿Fue útil?

Solución

Este problema está relacionado con la arquitectura S#arp.Necesitará obtener la versión MVC2 de S#arp aquí: http://github.com/codai/Sharp-Architecture/downloads.El primer elemento de la lista es lo que desea, incluida la plantilla VS2010.(Tenga en cuenta el error tipográfico en la descripción que dice ASP.NET 2, debería ser ASP.NET MVC 2)

Espero que ayude.

PDSi tiene curiosidad acerca de la causa de la excepción en sí, consulte este breve artículo: http://dotnetperls.com/arraytypemismatchexception.Sospecho (sin mirar la fuente S#arp 1 y MVC2) que el SharpModelBinder (la versión MVC1) ahora es incompatible con la implementación MVC2 de MVC DefaultBinder, y esto no se detecta en tiempo de compilación porque SharpModelBinder hereda de DefaultBinder y el compilador piensa que todo está bien.Sólo en tiempo de ejecución se detecta la incompatibilidad real.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top