Имя «ViewBag» не существует в текущем контексте - в «области» - PullRequest
17 голосов
/ 14 августа 2011

Моя проблема очень похожа на эту, за исключением того, что моя находится в подобласти (щелкните правой кнопкой мыши, Создать область)

Имя 'ViewBag' не существует в текущем контексте

Я запустил инструмент обновления, и он обнаружил 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>

Ответы [ 3 ]

19 голосов
/ 05 апреля 2013

Вы должны знать, что при создании приложения MVC вы получаете два Web.Config файла.Один в корне проекта и один в папке Views.У меня была такая же проблема, и по какой-то причине, когда я работал над своим проектом, я случайно изменил тот, который был в представлении.Очистка (в папке Views) исправила эту ошибку.Надеюсь, поможет.

enter image description here

11 голосов
/ 14 августа 2011

У меня есть web.config, работающий в области. Посмотрите, имеет ли ваш web.config в вашей папке View область, такую ​​как

 <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>
3 голосов
/ 05 сентября 2013

Убедитесь, что файл web.config, расположенный в каталоге «Views», находится в корне этого каталога.Я случайно переместил его в каталог «Shared» и какое-то время рвал на себе волосы, пока не понял это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...