2011-05-17 118 views
13

我創建了一個名爲「Admin」的區域。無法投射'ASP._Page_Areas_Admin__ViewStart_cshtml'類型的對象來鍵入'System.Web.WebPages.StartPage'

在/區域/管理/查看/,我有_ViewStart.cshtml這個:

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

當我訪問一個頁面/管理/我發現了以下錯誤:無法強制轉換對象類型'ASP._Page_Areas_Admin__ViewStart_cshtml'來鍵入'System.Web.WebPages.StartPage'。

我從How do I use a common _ViewStart in areas?提出了建議更改。

我有這個在我的根web.config,和/區/管理/瀏覽次數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> 

任何人都知道我在做什麼錯在這裏?

編輯:不知道這是否會有所幫助,但如果我在_ViewStart.cshtml刪除代碼,以便它是空的,我能夠查看/管理頁面,而無需得到一個錯誤。

回答

38

_ViewStart.cshtml文件只能放在Views文件夾中。您遇到的異常情況非常嚴重表明您沒有將_ViewStart.cshtml放入~/Areas/Admin/Views/文件夾內(與web.config處於同一級別)。

這裏有一個正確的項目結構應該如何看起來像:

enter image description here

+0

你說得對,這不是在我的瀏覽文件夾。謝謝。 – Steven 2011-05-18 01:59:21

+0

對我來說,'_ViewStart.cshtml'和'Web.config'都是同一級別的。但是我爲MVC創建了一個可插入的體系結構(將控制器和視圖放入DLL中,並將該DLL放入'/ Plugins'文件夾中)。我也得到了這個例外。任何想法@Darin? – 2012-05-29 09:29:11

+3

@SaeedNeamati嘗試在您的_ViewStart.cshtml中放入'@inherits System.Web.Mvc.ViewStartPage'。 – ngm 2012-12-27 21:12:09

相關問題