2010-07-13 3 views
1

J'ai une ancienne solution mvc asp.net (framework s # arp) avec deux projets un pour le web et un pour le contrôleur. J'ai changé le dll aux dernières versions (2.0) pour System.Web.MVC et Microsoft.Web.MVC. J'ai également ajusté mon Web.Config:passer de asp.net mvc 1.0 -> 2.0 - s # arp framework

<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 je reçois cette erreur:

tenté d'accéder à un élément comme un 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 en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: 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 (new AreaViewEngine()); Ligne 35: Ligne 36: ModelBinders.Binders.DefaultBinder = new SharpModelBinder();

Ceci n'est peut-être pas lié au commutateur mvc mais à la structure s # arp. Des idées? Merci.

Meilleurs voeux,

Christian

Répondre

2

Ce problème est lié à S # arp architecture. Vous aurez besoin de la version MVC2 de S # arp ici: http://github.com/codai/Sharp-Architecture/downloads. Le premier élément de la liste est ce que vous voulez, 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)

Espérons que cela aide.

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 suspecte (sans regarder S source # 1 et MVC2) que le SharpModelBinder (la version MVC1) est maintenant incompatible avec l'implémentation MVC2 du MVC DefaultBinder, et ce n'est pas attrapé à 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é est détectée.

+0

Brandon aurait raison. – Alec

+0

Salut, je suis presque là. J'ai échangé toutes les DLL dans le dossier lib avec celles d'une version plus récente de s # arp. Ensuite, assurez-vous que toutes les DLL dans la solution pointent vers la dernière (par exemple, il n'y a qu'une seule partition sharparch maintenant). Tout compile et le site fonctionne, mais la grille mvc contrib pose quelques problèmes maintenant - la raison pour laquelle je voulais passer à mvc 2.0 en premier lieu ... – cs0815

+0

Avez-vous trouvé le problème MvcContrib Grid? Si non, avez-vous posté une autre question ici? Sinon, il y a beaucoup de gens de MvcGrid sur SO qui seraient heureux de vous aider. –

Questions connexes