Представление должно быть производным от WebViewPage или WebViewPage


Я учебник по архитектуре плагинов Джастина Слэттери и пытается адаптировать его для Razor, а не для просмотра веб-форм.

все остальное (контроллеры, загрузка сборок плагинов и т. д.), Похоже, в порядке. Тем не менее, я не могу получить встроенные представления Razor для правильной работы. Когда я пытаюсь перейти к "HelloWorld / Index", я получаю следующую ошибку:

The view at '~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml' must derive from WebViewPage or WebViewPage<TModel>.

исключение по System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +262

Я могу включить полный трассировку стека, если это необходимо.

может ли кто-нибудь посоветовать, что я могу делать неправильно?

7 71

7 ответов:

Вы можете оформить заказ блоге который более приспособлен к бритве.

но чтобы ответить на ваш вопрос, так как вы теперь обслуживаете свои взгляды из нестандартного места, больше нет ~/Views/web.config файл, который применяется и позволяет указать базовый тип для ваших представлений razor. Таким образом, вам может потребоваться добавить следующее в верхней части каждого вида бритвы:

@inherits System.Web.Mvc.WebViewPage
@model ...

Примечание: у меня была очень похожая проблема, и мне пришлось, наконец, отследить, что я был единственным разработчиком с MVC 4.0.0.0, связанным в их решении.

все остальные правильно ссылались на 3.0.0.0 и строили/запускали без ошибок.

TL; DR убедитесь, что ваши ссылки совпадают с остальной частью вашей группы разработки.

У меня была такая же проблема, потому что я не зафиксировал папку packages, которая содержит библиотеки razor. Затем я добавил пакет, он работал, но после восстановления он сломался. Затем я отключил автоматический запуск nuget при сборке, и теперь он работает нормально. В моем случае нугет все испортил.

только что получил эту ошибку сегодня при обновлении старого MVC3-проекта до версии 4 и для меня решение было удалить атрибут appliesTo="v2.0.50727" на .

Я хочу поделиться своей болью.. сайт работал нормально локально, однако когда я опубликовал в IIS клиента, он бросал эту ошибку. Вся паутина.конфигурационные файлы (root и / Views) идеально сочетаются с рабочей копией сайта.

одно из мнений (вход.cshtml) имел несогласованные окончания строк, и я не нажал да, чтобы исправить это на моей машине Windows.

Нажмите кнопку Да в диалоговом окне несогласованные окончания строк и опубликуйте вход в систему.cshtml view исправил это для мне.

я получил эту ошибку, когда пытался добавить леса MVC (в частности,Views папка) в проект веб-API. ответ Дарина Димитрова говорит:

уже нет ~/Views/web.config файл, который применяется и позволяет указать базовый тип для ваших представлений razor

и в комментариях к этому ответу,joelnet сказал:

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

и Поль д'Ауст сказал:

если у вас возникли проблемы с получением решения в комментарии @joelnet для работы, попробуйте очистить и перестроить проект.

эти подсказки помогли мне понять решение.

сначала я скопировал Web.config С Views папка другого проекта в том же решении для моего нового . Я переименовал главный namespace тег соответствует новому проекту, а после получения ошибки удаляется еще один <add namespace="..." /> это мне не нужно. Затем я запустил сборку (только обычную сборку, мне не нужно было очищать и перестраивать), и я смог загрузить свой новый вид без ошибок.

установить пакет: установка пакета Microsoft.сеть САШ.Веб-страницы