Имя "ViewBag" не существует в текущем контексте. Когда в "Area"
Моя проблема очень похожа на эту проблему, за исключением того, что моя находится в субрайоне (щелкните правой кнопкой мыши, Create Area)
Имя "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>
Ответы
Ответ 1
Вы должны знать, что при создании приложения MVC вы получаете два файла Web.Config
. Один в корне проекта и один в папке "Представления". У меня была одна и та же проблема, и по какой-то причине, когда я работал над своим проектом, я случайно изменил его под представлениями. Очистка (в папке "Представления" ) исправлена эта ошибка. Надеюсь, поможет.
![enter image description here]()
Ответ 2
У меня есть web.config, работающий в области. Посмотрите, есть ли ваш 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>
Ответ 3
Убедитесь, что файл web.config, расположенный в вашем каталоге "Views", находится в ROOT этого каталога. Я случайно переместил его в "Общий" каталог и порвал свои волосы на некоторое время, пока не понял это...