2011-08-14 121 views
17

Mi problema es muy similar a este problema, excepto que el mío está en un sub-Área (clic derecho, Crear Área)El nombre 'ViewBag' no existe en el contexto actual - Cuando estoy en un "Área"

The name 'ViewBag' does not exist in the current context

Ejecuté la herramienta de actualización y descubrió el web.config en el área, pero sigo recibiendo el error. Mi diseño de la página es muy simple:

<!DOCTYPE html> 

<html> 
<head> 
    <title>@ViewBag.Title</title> 
</head> 
<body> 
    <div> 
     @RenderBody() 
    </div> 
</body> 
</html> 

Y mi página de contenido tiene este aspecto en la parte superior:

@model IEnumerable<ProjectName.Models.OrderViewModel> 

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

<h2>Index</h2> 
+0

Entonces ViewData puede ser accesible, ¿verdad? –

+0

¿Algún progreso en esto? Me encuentro con el mismo problema. – kmehta

Respuesta

11

tengo web.config de trabajo en un área. Vea si su web.config en su carpeta Vista de la zona cuenta con s como parte siguiente

<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> 
+0

¿De dónde obtienes el token de la clave pública "host"? –

+1

@MichalPaszkiewicz VS lo generó para mí. Con respecto a PKT, refiérase a http://stackoverflow.com/a/1322775/749973 –

+0

impresionante, gracias :) –

18

Debe tener en cuenta que al crear una aplicación MVC, se obtienen dos Web.Config archivos. Uno en la raíz del proyecto y otro en la carpeta Vistas. Tuve el mismo problema y, por alguna razón, cuando estaba trabajando en mi proyecto, accidentalmente modifiqué el que estaba debajo de las Vistas. Limpiarlo (el de la carpeta Vistas) corrigió ese error. Espero eso ayude.

enter image description here

+1

Gracias @mpora, la limpieza solucionó el error. –

+0

Mi Web.config no se incluyó como archivo de solución. Por lo tanto, funcionaba bien en mi máquina, pero no en mi publicación generada. Incluyendo en solución fija, ty. – talles

3

Compruebe para asegurarse de que el archivo web.config ubicado en el directorio de "Vistas" se encuentra en la raíz de ese directorio. Accidentalmente lo moví al directorio "Compartido" y me arranqué el cabello por un tiempo hasta que descubrí esto ...

Cuestiones relacionadas