Вопрос

У меня есть старое решение asp.net mvc (фреймворк s#arp) с двумя проектами: один для Интернета и один для контроллера.Я изменил dll на последние версии (2.0) для System.Web.MVC и Microsoft.Web.MVC.Я также скорректировал свой Web.Config:

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

Это (теоретически) все, что мне нужно сделать?

Решение строится нормально, но я получаю эту ошибку:

Попытка получить доступ к элементу как типу, несовместимому с массивом.Описание:Во время выполнения текущего веб-запроса произошло необработанное исключение.Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и ее источнике в коде.

Подробности исключения:System.ArrayTypeMismatchException:Попытка получить доступ к элементу как типу, несовместимому с массивом.

Ошибка источника:

Строка 32:Строка 33:ViewEngines.Engines.Clear();Строка 34:ViewEngines.Engines.Add(новый AreaViewEngine());Строка 35:Строка 36:ModelBinders.Binders.DefaultBinder = новый SharpModelBinder();

Это может быть связано не с переключателем mvc, а с инфраструктурой s#arp.Есть идеи?Спасибо.

С наилучшими пожеланиями,

христианин

Это было полезно?

Решение

Эта проблема связана с архитектурой S#arp.Вам понадобится версия S#arp MVC2 здесь: http://github.com/codai/Sharp-Architecture/downloads.Первый элемент в списке — это то, что вам нужно, включая шаблон VS2010.(Обратите внимание на опечатку в описании, в которой говорится, что ASP.NET 2 должен быть ASP.NET MVC 2)

Надеюсь, это поможет.

P.S.Если вам интересно узнать причину самого исключения, прочтите эту краткую статью: http://dotnetperls.com/arraytypemismatchException.Я подозреваю (не глядя на исходники S#arp 1 и MVC2), что SharpModelBinder (версия MVC1) теперь несовместима с реализацией MVC2 MVC. DefaultBinder, и это не улавливается во время компиляции, потому что SharpModelBinder наследует от DefaultBinder и компилятор думает, что все в порядке.Фактическая несовместимость обнаруживается только во время выполнения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top