Подтвердить что ты не робот

".. должен быть получен из WebViewPage или WebViewPage <TModel>" на MonoDevelop & MVC3 (OS X)

Я пытаюсь запустить проект MVC 3 Razor с MonoDevelop.

Я создал новый проект ASP.net MVC 2 с использованием Mono 2.10.9/MonoDevelop 3.0.4.7 и скопировал приведенную ниже DLL из существующего проекта MVC3 на базе Windows в каталог "bin" проекта Mono:

System.Web.Helpers.dll
System.Web.Razor.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll

Установили, что проект использует Mono/.NET 4. Файл индекса по умолчанию был удален и заменен файлом Index.cshtml. Когда я выполняю проект, я получаю следующую ошибку:

The view at '~/Views/Home/Index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.

Какая странность в том, что я прошел этот процесс раньше и работал на страницах MVC 3. Это только после обновления Mono (который утверждает, что поддерживает Razor...?), Что теперь он больше не работает для меня. Однако проекты, которые я создал ранее с MVC3, все же компилируются и работают в новой версии Mono.

Очень ценится, если кто-нибудь может указать, где я могу найти лес среди этих деревьев:)

4b9b3361

Ответ 1

Если кто-то это переживает, это просто потому, что файл web.config, который находится в папке "Представления", не был обновлен, поэтому он ссылается на компоненты Razor MVC3. Duh.

Проще всего сделать копию одного из существующего проекта MVC3.

Ответ 2

Решение 1.

Добавьте следующую строку поверх вашего файла cshtml.

@inherits System.Web.Mvc.WebViewPage

Вам должно быть интересно теперь думать, что представления в шаблонах ASP.NET MVC не имеют этой строки поверх файла cshtml? Итак, рассмотрим второе решение.

Решение 2.

Добавьте файл web.config и укажите тот же параметр для всех видов. Это минимально необходимый код в этом файле конфигурации, чтобы избавиться от этого сообщения об ошибке.

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
                  System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, 
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor,
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages>
  </system.web.webPages.razor>
</configuration>

Требуется фактическая установка - pageBaseType = "System.Web.Mvc.WebViewPage". Другой текст требуется только для определения тегов.

Ссылка ссылки: clickHere