2017-05-04 3 views
0

내가 '입력'유형'ASP._Page__ViewStart_cshtml'형식의 개체를 캐스팅하여 'System.Web.WebPages.StartPage'를 입력 할 수 없습니다. 오류

의 목적

ASP._Page__ViewStart_cshtml을 행사할 수 없습니다 받고 있어요 System.Web.WebPages.StartPage '

내 MVC 응용 프로그램을 실행

.

검색 내 _ViewStart 파일 내 보기에 폴더, 그것이 있는지 확인하기 위해 나에게 말한다 동안 내가 찾은 모든 대답. 낯선 사람이라 할지라도 필자는 기존의 Win 7 PC에서 새 Windows 10 랩톱으로 동일한 프로젝트 파일을 복사했습니다. 응용 프로그램은 오래된 PC에서 정상적으로 실행되지만 새로운 노트북에서는 위의 오류가 발생합니다. 또한 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 

웹 구성보기 폴더 :

<?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> 
+0

@inherits System.Web.Mvc.ViewStartPage를 추가하고 당신이 당신의 코드와 예외를 throw 라인을 추가하면 어떨까요? – Gusman

+0

프로젝트 루트/뷰 폴더에 _ViewStart.cs 파일이 있는데이 오류가 계속 발생합니까? 그것이 Shared와 같은 하위 폴더로 드래그되지 않았는지 확인하십시오. 그러면 하위 폴더가 발견되지 않을 수 있습니다. – Chad

+0

.Net 버전을 컴퓨터에서 비교 했습니까? –

답변

0

경우 1 : 프로젝트를 재구성 할 때

그것은 copy+paste 오류입니다. 프로젝트의 루트 폴더에 떨어진 뷰 폴더에서 _ViewStart.cshtml를 이동 한 경우

:

해결 방법 : 단지 @inherits System.Web.Mvc.WebViewPage

경우 2를 제거합니다.

해결책 : _ViewStart.cshtml 파일은 Views 폴더에만 넣을 수 있습니다.

경우 3합니다 (web.config 같은 수준) : 당신은 4.5 프레임 워크와이 오류에 직면에 MVC3를 업그레이드 한 경우

.

솔루션 : 단지 _ViewStart.cshtml

+0

해당 파일에있는 내용은 모두 다음과 같습니다. @ { Layout = "~/Views/Shared/_Layout.cshtml"; } – Nick

+0

뷰 폴더에있는'Web.config' 파일은 어떨까요[email protected] – Ashiquzzaman

+0

원래 게시물에 추가되었습니다. – Nick

관련 문제