「ルート」ビューフォルダには、次のコードを含む_ViewStartがあります。
@Code
Layout = "~/Views/Shared/_Layout.vbhtml"
End COde
Area/Public/Viewsフォルダーには、ルートのViewフォルダーからの_ViewStartのコピーがあります。
しかし、コードを実行すると、次のエラーが表示されます。
Unable to cast object of type 'ASP._ViewStart_vbhtml' to type 'System.Web.WebPages.StartPage'.
私は間違っていることを知らないのですか?
自分のエリアにも1つの_ViewStart.vbhtml
を使用できますか?
エリアで_ViewStart.vbhtml
を使用するにはどうすればよいですか?
~\Views\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>
この問題に出くわしたとき、最初にこの答えに出くわしましたが、私が本当に欲しかったのは http://stevescodingblog.co.uk/asp-net-mvc-3rc-areas-viewstart/ でした。
問題の要点は、_ViewStart。** htmlにスコープがあることです。同じレベルまたはその下のサブフォルダーにあるすべてのビューに適用されます。したがって、ベースディレクトリ(たとえばGlobal.asaxファイルの隣)に移動すると、〜/ Views/*の下のすべてのビューに適用されますand〜/ Areas/* /の下のすべてのビュービュー/ *。
受け入れられた答えと同様に、<system.web.webPages.razor>
および<sectionGroup name="system.web.webPages.razor"..>
セクションをコピーする必要があります。それらをベースのweb.configファイル(プロジェクトのルート)に配置します。
詳細なチュートリアル です。
ボーナスポイントについては、問題のビューに近い新しいファイルを作成することにより、_ViewStart。** html設定をオーバーライドできます(たとえば、〜/ Views/_ViewStart.cshtmlファイルは〜/ _ViewStart.cshtmlを〜/ _ViewStart.cshtmlで上書きし、〜/ Views /ディレクトリ)。
_ViewStartをルートに移動し、system.web.webPages.razorセクションをルートWeb構成に追加することはできましたが、この<< add namespace = "Ico.Logics.Webに似た行を追加する必要もありました。 .Areas.Admin.Models "/ >>をコピーしたセクションに追加します。