Не удалось преобразовать объект типа «ASP._Page_Areas_Admin__ViewStart_cshtml» в тип «System.Web.WebPages.StartPage» - PullRequest
13 голосов
/ 17 мая 2011

Я создал область с именем "Admin".

В / Areas / Admin / Views /, у меня есть _ViewStart.cshtml с этим:

@{
    Layout = "~/Areas/Admin/Views/Shared/_Layout.cshtml";
}

Я получаю следующееОшибка при посещении страницы в / Admin /: Невозможно привести объект типа 'ASP._Page_Areas_Admin__ViewStart_cshtml' к типу 'System.Web.WebPages.StartPage'.

Я сделал предложенныйотличается от Как использовать общий _ViewStart в областях? .

У меня есть это в моем web.config в корне, и web.config в / Areas / Admin / Views /:

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

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

<appSettings>
  <add key="webpages:Version" value="1.0.0.0"/>
  <add key="webpages:Enabled" value="false" />
  <add key="ClientValidationEnabled" value="true"/>
  <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

Кто-нибудь знает, что я здесь не так делаю?

РЕДАКТИРОВАТЬ: Не знаю, поможет ли это, но если я удалю код в _ViewStart.cshtml, чтобы он был пустым, я могу просматривать страницы в / Admin без ошибки.

1 Ответ

38 голосов
/ 17 мая 2011
Файлы

_ViewStart.cshtml могут быть помещены только в папку Views.Исключение, которое вы получаете, очень сильно говорит о том, что вы не поместили _ViewStart.cshtml в папку ~/Areas/Admin/Views/ (на том же уровне, что и web.config).

Вот как должна выглядеть правильная структура проекта:

enter image description here

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