无法将"ASP._Page_Areas_Admin__ViewStart_cshtml"类型的对象强制转换为"System.Web.WebPages.StartPage"类型

Ste*_*ven 13 c# asp.net asp.net-mvc asp.net-mvc-3

我创建了一个名为"Admin"的区域.

在/ Areas/Admin/Views /中,我有_ViewStart.cshtml:

@{
    Layout = "~/Areas/Admin/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

当我访问一个页面中/我发现了以下错误管理/:无法转换类型"ASP._Page_Areas_Admin__ViewStart_cshtml"的对象键入"System.Web.WebPages.StartPage".

我在如何在区域中使用常见的_ViewStart进行了建议的更改.

我在root中的web.config和/ Areas/Admin/Views /中的web.config中有这个.

<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>
Run Code Online (Sandbox Code Playgroud)

谁知道我在做错了什么?

编辑:不知道这是否有帮助,但如果我删除_ViewStart.cshtml中的代码使其为空,我可以在/ Admin中查看页面而不会出现错误.

Dar*_*rov 38

_ViewStart.cshtml文件只能放在一个Views文件夹中.您获得的异常强烈建议您没有放置文件夹_ViewStart.cshtml内部~/Areas/Admin/Views/(与该文件夹处于同一级别web.config).

以下是正确的项目结构应如何:

在此输入图像描述

  • @SaeedNeamati尝试将`@inherits System.Web.Mvc.ViewStartPage`放在_ViewStart.cshtml中. (3认同)