Обновите проблемы MVC 2 до MVC 3 с представлениями - PullRequest
4 голосов
/ 18 августа 2010

Я пытаюсь обновить свое существующее веб-приложение ASP.net MVC 2 до MVC 3, чтобы я мог использовать все преимущества Razor Viewengine и другие упомянутые улучшения.

ПослеИспользование конвертера для конвертации моего приложения из mvc2 в mvc3 У меня проблемы со строго типизированными представлениями.В качестве примера здесь у нас есть пользовательский элемент управления представления, который строго типизирован для класса Profile

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Profile>" %>

Во время компиляции я получаю

Compiler Error Message: CS1061: 'object' does not contain a definition for 'folio' and no extension method 'folio' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

, что соответствует этой строке в моем представленииalt text

Так что, как будто представления больше не принимают тип.Это происходит как с пользовательскими элементами управления, так и с полными представлениями.

Я проверил как web.config, так и views / web.config, и оба они ссылаются на System.Web.Mvc версии 3.0.0.0

Буду признателен за любую помощь!

Ниже приведены снимки экрана web.configs

alt text

alt text

alt text

Ответы [ 5 ]

7 голосов
/ 20 августа 2010

Это ошибка в MVC 3 Preview 1, и она будет устранена в следующем выпуске. Тем временем вы можете переставить страницы так, чтобы директива <% @ Control%> была последней в файле, и это должно решить проблему для вас.

5 голосов
/ 30 ноября 2010

Я просто заменил файл web.config в папке «Views» (на один из недавно созданного проекта mvc3), как было предложено при переносе, и это сработало для меня.Я не был готов сдвинуть все декларации до дна, так как мой проект был слишком большим.

Надеюсь, это поможет, хотя, возможно, уже слишком поздно для вас.Может быть, это помогает другим ...

4 голосов
/ 19 августа 2010

При случайном отклонении попробуйте изменить bindingRedirect на

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
0 голосов
/ 10 января 2013

Если ваш проект основан на MVC4 или уже использует Framwork 4, создайте пустой проект mvc4.А затем замените web.config в папке views.Работает сразу.Спасибо, Винн.Так как у меня есть старое приложение, которое использует aspx, а не бритву.После того, как я обновил Framework 3 до 4, я получил эту ошибку.

0 голосов
/ 20 января 2011

У меня была точно такая же проблема, и, немного потянув за волосы, нашел и последовал решению Вайана.Работает отлично, и сайт снова работает.

Достаточно забавно не внесение этого изменения в наши блоки разработки не сломало наш сайт - только когда мы переместили его на промежуточный сервер,это всплыло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...