我如何在一个区域使用一个普通的_ViewStart?
在我的“根”视图文件夹,我有一个_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
文件(或至less以下configuration元素)复制到您的区域的视图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 / *下的所有视图和 〜/ Areas / * / Views / *下的所有视图。
与接受的答案类似,您仍然需要复制<system.web.webPages.razor>
和<sectionGroup name="system.web.webPages.razor"..>
部分。 将它们放在您的基本web.config文件中(在项目的根目录中)。
这是一个更完整的教程 。
对于奖励积分,您可以通过创build一个更接近相关视图的新文件来覆盖_ViewStart。** html设置(例如文件〜/ Views / _ViewStart.cshtml将覆盖〜/ _ViewStart.cshtml中的所有视图〜/视图/目录)。
我发现将_ViewStart移动到根目录并将system.web.webPages.razor部分添加到根webconfiguration工作,但是我还需要添加一些类似于这样的行<< add namespace =“Ico.Logics.Web .Areas.Admin.Models“/ >>复制到该部分。
- 我们可以在ASP.NET Webforms(* .aspx页面)中使用Razor语法吗?
- 尝试“System.Web.Mvc.PreApplicationStartCode.Start()”到关键方法“System.Web.WebPages.Razor.PreApplicationStartCode.Start()”失败
- 动作图像MVC3剃刀
- 在剃刀foreach上获取索引值
- 使用Razor View Engine从ASP.NET MVC 3的局部视图中将内容注入特定的部分
- 什么,为什么或什么时候selectcshtml vs aspx更好?
- 在ASP.NET MVC中提供favicon.ico
- 在部分视图中放入JavaScript是否可行?
- 命名约定来区分部分视图和普通视图