Asp.net-Mvc

如何在區域中使用常見的 _ViewStart?

  • November 5, 2010

在我的“根”視圖文件夾中,我有一個帶有以下程式碼的 _ViewStart:

@Code
   Layout = "~/Views/Shared/_Layout.vbhtml"
End COde

在我的 Area/Public/Views 文件夾中,我有一個來自根 Views 文件夾的 _ViewStart 副本。

但是當我執行程式碼時,我得到了這個錯誤:

Unable to cast object of type 'ASP._ViewStart_vbhtml' to type 'System.Web.WebPages.StartPage'.

我做錯了什麼?

我也可以在我的區域使用一個_ViewStart.vbhtml嗎?

如何_ViewStart.vbhtml在區域中使用?

您需要將~\Views\Web.config文件(或至少以下配置元素)複製到您區域的 View 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>

引用自:https://stackoverflow.com/questions/4109205