Moj*_*oDK 62 vb.net asp.net-mvc razor
在我的"root"Views文件夹中,我有一个带有以下代码的_ViewStart:
@Code
Layout = "~/Views/Shared/_Layout.vbhtml"
End COde
Run Code Online (Sandbox Code Playgroud)
在我的Area/Public/Views文件夹中,我有一个来自根Views文件夹的_ViewStart的副本.
但是当我运行代码时,我收到此错误:
Unable to cast object of type 'ASP._ViewStart_vbhtml' to type 'System.Web.WebPages.StartPage'.
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么?
我也可以_ViewStart.vbhtml在我的地区使用一个吗?
我如何_ViewStart.vbhtml在地区使用?
mar*_*ind 51
您需要将~\Views\Web.config文件(或至少以下配置元素)复制到Area的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>
Run Code Online (Sandbox Code Playgroud)
fra*_*der 34
当我遇到这个问题时,我首先遇到了这个问题,但我真正想要的是http://stevescodingblog.co.uk/asp-net-mvc-3rc-areas-viewstart/.
问题的关键是_ViewStart.**html有一个范围.它将应用于同一级别或其下的子文件夹中的任何视图.因此,如果将其移动到基本目录(例如,在Global.asax文件旁边),它将应用于〜/ Views/*下的所有视图以及〜/ Areas/*/Views/*下的所有视图.
与接受的答案类似,您仍然需要复制<system.web.webPages.razor>和<sectionGroup name="system.web.webPages.razor"..>部分.将它们放在您的基本web.config文件中(在项目的根目录中).
这是一个更完整的教程.
对于奖励积分,您可以通过创建一个更接近相关视图的新文件来覆盖_ViewStart.**html设置(例如〜/ Views/_ViewStart.cshtml文件将覆盖〜/ _ViewStart.cshtml中的所有视图〜/意见/目录).
| 归档时间: |
|
| 查看次数: |
21409 次 |
| 最近记录: |