当前上下文中不存在名称"ViewBag" - 在"区域"中

010*_*101 17 asp.net-mvc asp.net-mvc-3

我的问题非常类似于这个问题,除了我的是在子区域(右键单击,创建区域)

"ViewBag"这个名称在当前上下文中不存在

我运行升级工具,它确实发现了该区域的web.config,但我仍然收到错误.我的布局页面非常简单:

<!DOCTYPE html>

<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    <div>
        @RenderBody()
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的内容页面看起来像这样靠近顶部:

@model IEnumerable<ProjectName.Models.OrderViewModel>

@{
    ViewBag.Title = "Index";
    Layout = "~/Areas/Admin/_AdminLayoutPage.cshtml";
}

<h2>Index</h2>
Run Code Online (Sandbox Code Playgroud)

mpo*_*ora 19

您应该知道,在创建MVC应用程序时,您将获得两个Web.Config文件.一个位于项目的根目录中,另一个位于Views文件夹下.我有同样的问题,出于某种原因,当我处理我的项目时,我意外地修改了视图下的那个.清理它(Views文件夹下的那个)修复了该错误.希望能帮助到你.

在此输入图像描述


Tae*_*hin 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>
Run Code Online (Sandbox Code Playgroud)