Pergunta

Eu tenho uma solução asp.net mvc mais antiga (estrutura s#arp) com dois projetos, um para web e outro para controlador.Alterei a dll para as versões mais recentes (2.0) para System.Web.MVC e Microsoft.Web.MVC.Também ajustei meu Web.Config:

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

Isso é (em teoria) tudo que tenho que fazer?

A solução funciona bem, mas recebo este erro:

Tentativa de acessar um elemento como um tipo incompatível com o array.Descrição:Ocorreu uma exceção não tratada durante a execução da solicitação da web atual.Revise o rastreamento de pilha para obter mais informações sobre o erro e sua origem no código.

Detalhes da exceção:System.ArrayTypeMismatchException:Tentativa de acessar um elemento como um tipo incompatível com o array.

Erro de origem:

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

Isso pode não estar relacionado à opção mvc, mas à estrutura s#arp.Alguma ideia?Obrigado.

Muitas felicidades,

cristão

Foi útil?

Solução

Este problema está relacionado à arquitetura S#arp.Você precisará obter a versão MVC2 do S#arp aqui: http://github.com/codai/Sharp-Architecture/downloads.O primeiro item da lista é o que você deseja, incluindo o modelo VS2010.(Observe o erro de digitação na descrição que diz ASP.NET 2, deveria ser ASP.NET MVC 2)

Espero que ajude.

P.S.Se você estiver curioso sobre a causa da exceção em si, confira este breve artigo: http://dotnetperls.com/arraytypemismatchexception.Eu suspeito (sem olhar para a fonte S#arp 1 e MVC2) que o SharpModelBinder (a versão MVC1) agora é incompatível com a implementação MVC2 do MVC DefaultBinder, e isso não é detectado em tempo de compilação porque SharpModelBinder herda de DefaultBinder e o compilador acha que está tudo bem.É somente em tempo de execução que a incompatibilidade real é detectada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top