C# 无法强制转换类型为';ASP."页面"视图开始"cshtml';输入';System.Web.WebPages.StartPage';。错误

C# 无法强制转换类型为';ASP."页面"视图开始"cshtml';输入';System.Web.WebPages.StartPage';。错误,c#,.net,asp.net-mvc,asp.net-mvc-3,visual-studio-2015,C#,.net,Asp.net Mvc,Asp.net Mvc 3,Visual Studio 2015,我正在获取类型为的无法强制转换对象 ASP.\u页面\u视图开始\u cshtml'输入'System.Web.WebPages.StartPage' 当我运行我的MVC应用程序时 搜索时找到的每个答案都告诉我要确保我的\u ViewStart文件位于我的Views文件夹中,它就是。更奇怪的是,我将完全相同的项目文件从旧的Win 7 PC复制到了新的Win 10笔记本电脑上。该应用程序在旧电脑上运行正常,但在新笔记本电脑上出现上述错误。我也在Visual Studio 2015中运行这两个程序

我正在获取类型为的无法强制转换对象

ASP.\u页面\u视图开始\u cshtml'输入'System.Web.WebPages.StartPage'

当我运行我的MVC应用程序时

搜索时找到的每个答案都告诉我要确保我的\u ViewStart文件位于我的Views文件夹中,它就是。更奇怪的是,我将完全相同的项目文件从旧的Win 7 PC复制到了新的Win 10笔记本电脑上。该应用程序在旧电脑上运行正常,但在新笔记本电脑上出现上述错误。我也在Visual Studio 2015中运行这两个程序

还有其他想法吗

完整错误消息:

[InvalidCastException: Unable to cast object of type 'ASP._Page__ViewStart_cshtml' to type 'System.Web.WebPages.StartPage'.]
   System.Web.WebPages.StartPage.GetStartPage(WebPageRenderingBase page, String fileName, IEnumerable`1 supportedExtensions) +236
   System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +163
   System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107
   System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +23
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +176
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +311
   System.Web.Mvc.Controller.ExecuteCore() +105
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +88
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +34
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +16
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +10
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +50
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +28
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +23
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +59
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9765901
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
[InvalidCastException:无法将类型为“ASP.\u Page\u ViewStart\u cshtml”的对象强制转换为类型为“System.Web.WebPages.StartPage”。]
System.Web.WebPages.StartPage.GetStartPage(WebPagerUnderingBase页,字符串文件名,IEnumerable`1 supportedExtensions)+236
System.Web.Mvc.RazorView.RenderView(ViewContext、TextWriter、Object实例)+163
System.Web.Mvc.buildmanager compiledview.Render(ViewContext、TextWriter)+107
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext上下文)+291
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext ControllerContext,ActionResult ActionResult)+13
System.Web.Mvc.c__显示Class1C.b__19()+23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter筛选器,ResultExecutingContext预文本,Func`1 continuation)+245
System.Web.Mvc.c__DisplayClass1e.b__1b()+22
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,ILST`1过滤器,ActionResult ActionResult)+176
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,String actionName)+311
System.Web.Mvc.Controller.ExecuteCore()+105
System.Web.Mvc.ControllerBase.Execute(RequestContext-RequestContext)+88
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext RequestContext)+10
System.Web.Mvc.c__显示类b.b__5()+34
System.Web.Mvc.Async.c__显示类1.b__0()+16
System.Web.Mvc.Async.c_uuuudisplayClass8`1.b_uuuu7(IAsyncResult)+10
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+50
System.Web.Mvc.c\uuu DisplayClasse.b\uu d()+28
System.Web.Mvc.SecurityUtil.b___0(操作f)+7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作)+23
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+59
System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+9765901
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155
视图文件夹中的Web配置:

<?xml version="1.0"?>

<configuration>
  <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" />
        <add namespace="DevExpress.Utils" />
        <add namespace="DevExpress.Web.ASPxClasses" />
        <add namespace="DevExpress.Web.ASPxGridView" />
        <add namespace="DevExpress.Web.ASPxGridView.Export" />
        <add namespace="DevExpress.Web.ASPxEditors" />
        <add namespace="DevExpress.Web.ASPxCallbackPanel" />
        <add namespace="DevExpress.Web.ASPxMenu" />
        <add namespace="DevExpress.Web.ASPxNavBar" />
        <add namespace="DevExpress.Web.ASPxPopupControl" />
        <add namespace="DevExpress.Web.ASPxRoundPanel" />
        <add namespace="DevExpress.Web.ASPxSplitter" />
        <add namespace="DevExpress.Web.ASPxTabControl" />
        <add namespace="DevExpress.Web.ASPxTreeView" />
        <add namespace="DevExpress.Web.ASPxUploadControl" />
        <add namespace="DevExpress.Web.ASPxHtmlEditor" />
        <add namespace="DevExpress.Web.ASPxSpellChecker" />
        <add namespace="DevExpress.XtraCharts"/>
        <add namespace="DevExpress.XtraCharts.Web" />
        <add namespace="DevExpress.XtraReports" />
        <add namespace="DevExpress.XtraReports.UI" />
        <add namespace="DevExpress.XtraReports.Web" />
        <add namespace="DevExpress.Web.Mvc" />
        <add namespace="DevExpress.Web.Mvc.UI" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    <add key="DalManagerType" value="TimeTracker.DalEF.DalManager,TimeTracker.DalEF"/>
    <add key="DalManagerTypeFMS" value="FMSv3.DALEF.DalManager,FMSv3.DALEF" />
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>

    <!--
        Enabling request validation in view pages would cause validation to occur
        after the input has already been processed by the controller. By default
        MVC performs request validation before a controller processes the input.
        To change this behavior apply the ValidateInputAttribute to a
        controller or action.
    -->
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />


    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

案例1:

重新组织项目时出现
copy+paste
错误

解决方案:只需删除
@inherits System.Web.Mvc.WebViewPage

案例2:

如果将
\u ViewStart.cshtml
从视图文件夹移到项目的根文件夹中

解决方案:
\u ViewStart.cshtml
文件只能放在视图文件夹中。(与
web.config
处于同一级别)

案例3:

如果您将MVC3升级到4.5框架并面临此错误


解决方案:只需将
@inherits System.Web.Mvc.ViewStartPage
添加到
\u ViewStart.cshtml

中,如果添加代码和引发异常的行,会怎么样?您的项目根目录/Views文件夹中有一个_ViewStart.cs文件,但仍然出现此错误?确保未将其拖到Shared之类的子文件夹中,这可能会导致找不到它。是否比较了计算机之间的.Net版本?请确保在查找文件属性时将生成操作设置为Content。原始帖子中已添加完整错误。是的,_ViewStart.cshtml文件位于root\Views文件夹中。它在两台机器上都在.NET4下运行。生成操作设置为内容。该文件中的所有内容是:@{Layout=“~/Views/Shared/_Layout.cshtml”}视图文件夹中的
Web.config
。@NickAdded到原始帖子。
Web.config
看起来不错。抱歉,另一个问题是您的
\u ViewStart
位置是
查看->\u ViewStart
?@NickYes,它在Views文件夹的根目录下。