Domanda

Ho una soluzione MVC ASP.NET precedente (S # ARP Framework) con due progetti uno per il web e uno per controller. Ho cambiato la DLL alle ultime versioni (2.0) per System.Web.MVC e Microsoft.Web.MVC. Ho anche regolato il mio web.config:

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

è questo (in teoria) tutto quello che devo fare?

La soluzione costruisce fine ma ottengo questo errore:

ha tentato di accedere a un elemento come tipo incompatibile con l'array. Descrizione: Si è verificata un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull'errore e dove è nato nel codice.

Dettagli delle eccezioni: System.ArrayTypemismatchException: tentato di accedere a un elemento come tipo incompatibile con l'array.

Errore di origine:

Linea 32: Linea 33: Viewengines.Engine.Clear (); Linea 34: Viewenginengine.engines.add (nuova areaviewengine ()); Linea 35: Linea 36: modelbinders.binders.defaultbinder= nuovo SharpModelbinder ();

Questo potrebbe non essere correlato allo switch MVC ma il quadro S # ARP. Qualche idea? Grazie.

I migliori auguri,

Christian

È stato utile?

Soluzione

Questo problema è correlato all'architettura S # ARP. Avrai bisogno di ottenere la versione MVC2 di S # ARP qui: http://github.com / Codai / Sharp-Architecture / Download . Il primo elemento sulla lista è ciò che desideri, incluso il modello VS2010. (Nota la tapografia nella descrizione che afferma ASP.NET 2, dovrebbe essere ASP.NET MVC 2)

Spero che ti aiuti.

P.S. Se sei curioso della causa dell'eccezione stessa, dai un'occhiata a questo breve articolo: http://dotnetperls.com/arrayTypemismatchException . Sospetto (senza guardare la sorgente S # ARP 1 e MVC2) che il SharpModelBinder (la versione MVC1) è ora incompatibile con l'implementazione MVC2 del DefaultBinder MVC, e questo non è catturato a compilazione-tempo perché SharpModelBinder eredita da DefaultBinder e Il compilatore pensa che tutto vada bene. È solo in fase di esecuzione che viene rilevata l'incompatibilità di acuazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top