我的问题非常类似于这个问题,除了我的是在子区域(右键单击,创建区域)
The name 'ViewBag' does not exist in the current context
我运行了升级工具,它确实在该区域发现了web.config,但我仍然收到错误消息。我的布局页面非常简单:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div>
@RenderBody()
</div>
</body>
</html>
我的内容页面看起来像是在顶部附近:
@model IEnumerable<ProjectName.Models.OrderViewModel>
@{
ViewBag.Title = "Index";
Layout = "~/Areas/Admin/_AdminLayoutPage.cshtml";
}
<h2>Index</h2>
答案 0 :(得分:19)
您应该知道,在创建MVC应用程序时,您会收到两个Web.Config
个文件。一个位于项目的根目录中,另一个位于Views文件夹下。我有同样的问题,出于某种原因,当我在处理我的项目时,我意外地修改了视图下的那个。清理它(Views文件夹下的那个)修复了该错误。希望能帮助到你。
答案 1 :(得分:11)
我在一个区域中运行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>
答案 2 :(得分:3)
检查以确保位于“Views”目录中的web.config文件位于该目录的ROOT。我不小心将它移到了“共享”目录并将我的头发撕了一段时间,直到我想出来......