Question

J'ai une ancienne solution asp.net mvc (framework s#arp) avec deux projets, un pour le Web et un pour le contrôleur.J'ai remplacé la DLL par les dernières versions (2.0) pour System.Web.MVC et Microsoft.Web.MVC.J'ai également ajusté mon Web.Config :

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

Est-ce (en théorie) tout ce que j'ai à faire ?

La solution se construit bien mais j'obtiens cette erreur :

Tentative d'accès à un élément en tant que type incompatible avec le tableau.Description:Une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle.Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails des exceptions :System.ArrayTypeMismatchException :Tentative d'accès à un élément en tant que type incompatible avec le tableau.

Erreur source :

Ligne 32 :Ligne 33 :ViewEngines.Engines.Clear();Ligne 34 :ViewEngines.Engines.Add(nouveau AreaViewEngine());Ligne 35 :Ligne 36 :ModelBinders.Binders.DefaultBinder = new SharpModelBinder();

Cela n'est peut-être pas lié au commutateur mvc mais au framework s#arp.Des idées?Merci.

Meilleurs vœux,

Christian

Était-ce utile?

La solution

Ce problème est lié à l'architecture S#arp.Vous devrez obtenir la version MVC2 de S#arp ici : http://github.com/codai/Sharp-Architecture/downloads.Le premier élément de la liste correspond à ce que vous souhaitez, y compris le modèle VS2010.(Notez la faute de frappe dans la description qui dit ASP.NET 2 devrait être ASP.NET MVC 2)

J'espère que cela pourra aider.

P.S.Si vous êtes curieux de connaître la cause de l'exception elle-même, consultez ce bref article : http://dotnetperls.com/arraytypemismatchexception.Je soupçonne (sans regarder les sources S#arp 1 et MVC2) que le SharpModelBinder (la version MVC1) est désormais incompatible avec l'implémentation MVC2 du MVC DefaultBinder, et cela n'est pas détecté au moment de la compilation car SharpModelBinder hérite de DefaultBinder et le compilateur pense que tout va bien.Ce n'est qu'au moment de l'exécution que l'incompatibilité réelle est détectée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top