the renderbody not name exist does current context dll asp.net-mvc-3 gac viewbag

dll - name - renderbody does not exist in the current context



El nombre ''ViewBag'' no existe en el contexto actual (14)

Intento usar ViewBag en mi aplicación, tengo todas las dlls recientes, la última versión de MVC 3, pero aún así sigo recibiendo el error:

"El nombre ''ViewBag'' no existe en el contexto actual"

Incluso he desinstalado y luego vuelto a instalar MVC 3 y, sin embargo, no hay cambios.

Además, no creo que los dll aparezcan en el GAC.

¿Cuál podría ser mi problema? ¿O cómo agregar los dll''s al GAC?


Actualicé páginas web: Versión debajo en la carpeta ./Views/Web.Config pero esta configuración también estaba presente en web.config en la raíz. Actualice ambos o elimine de la raíz web.config



Después de probar cosas diferentes, resulta que fue caché VS. Puede resolverlo eliminando los archivos de caché ubicados en:

C: / Users / your.name.here / AppData / Local / Microsoft / VisualStudio / 14.0 / ComponentModelCache

Cerré mi proyecto, eliminé los archivos en esa ruta y volví a abrir mi proyecto, limpié la solución y la volví a construir y el problema fue resuelto.

Los archivos se recrearán la próxima vez que inicie Visual Studio


Después de probar todos los enfoques, ninguno de ellos funcionó para mí, ya que todo lo que tenía eran configuraciones correctas. finalmente

Eliminar todos los archivos de "temp" y "% temp%" del sistema ayudó a resolver este problema.

Abra el comando Ejecutar (Windows + R) y escriba encima de las cadenas y elimine todos los archivos temporales.


En mi caso, cambiar la página web: la versión con el valor correcto resolvió mi problema, para mí el valor correcto era (2.0.0.0 en lugar de 3.0.0.0):

<appSettings> <add key="webpages:Version" value="2.0.0.0"/> <add key="webpages:Enabled" value="false"/>


Estaba teniendo el mismo problema. Resultó que me faltaba el archivo ./Views/Web.config , porque creé el proyecto desde una aplicación ASP.NET vacía en lugar de usar una plantilla ASP.NET MVC.

Para ASP.NET MVC 5, un archivo ./Views/Web.config vanilla contiene lo siguiente:

<?xml version="1.0"?> <!-- https://.com/a/19899269/178082 --> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.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=5.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> <appSettings> <add key="webpages:Enabled" value="false" /> </appSettings> <system.web> <httpHandlers> <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> </httpHandlers> <!-- Enabling request validation in view pages would cause validation to occur after the input has already been processed by the controller. By default MVC performs request validation before a controller processes the input. To change this behavior apply the ValidateInputAttribute to a controller or action. --> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer> </configuration>

Agregar un archivo ./Views/Web.config que contenga este contenido me solucionó este problema.


Intenta limpiar y reconstruir. Funcionó en mi caso.


Si hubiera probado todas las respuestas disponibles y todavía no puede encontrar la respuesta, esto podría solucionar el problema. Si tiene diferentes configuraciones de soluciones como Debug, Release, etc., configure la ruta de salida del proyecto en ''bin'' y compile el proyecto. Revertir el cambio después de compilar.

VS busca dlls en la carpeta bin



Tenía un archivo ./Views/Web.Config , pero este error ocurrió después de publicar el sitio. Resulta que la propiedad de acción de compilación en el archivo se estableció en None lugar de Content . Cambiar esto a Content permitió que la publicación funcionara correctamente.


Tuve el mismo problema en una solución que se había actualizado a MVC 5 en Visual Studio 2015.

En el archivo web.config dentro de la carpeta Vistas (no en la raíz web.config), actualicé el número de versión al que se hace referencia en <configSections> de 2.0.0.0 a 3.0.0.0 .

<configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections>


Tuve el mismo problema y crimbo me dio la pista correcta, fue causada por el archivo ./Views/Web.config que estaba presente pero que no contiene los espacios de nombres correctos, supongo ...

Creé un proyecto MVC5 en blanco e importé su ./Views/Web.config en mi proyecto existente y las ondas rojas en cada uso de ViewBag se han ido.


Tuve este problema después de cambiar el espacio de nombres predeterminado de la aplicación en el cuadro de diálogo Propiedades.

El ./Views/Web.Config contenía una referencia al antiguo espacio de nombres


Ya había intentado eliminar el archivo bin y obj y reiniciar VS, y no tuve suerte.

También he tenido este problema muchas veces y es un dolor de resolver cada vez. A menudo se debe a que el archivo web.config no tiene la versión correcta de una de las referencias. Esto significa hacer clic en la referencia en Visual Studio para ver la versión en la pestaña de propiedades, y luego hacerla coincidir con la versión en los archivos web.config.

Otra forma es (si es posible) actualizar a una versión posterior del .NET Framework y luego eliminar los archivos bin / obj y reiniciar Visual Studio. Solo puedo suponer que está cambiando algo en el

Una comprobación rápida de la diferencia entre el archivo csproj no muestra ninguna diferencia importante ... Pero las diferencias que mostró fueron (he agregado (eliminar) para mostrar la línea anterior)

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> (remove) <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>(remove) <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>

En el archivo Web.Config (no el que está en la Vista)

<add key="webpages:Version" value="2.0.0.0" /> (remove) <add key="webpages:Version" value="3.0.0.0"/>

También se agregó (al mismo archivo web.config) pero lo eliminé manualmente

<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=/&quot;Web/&quot; /optionInfer+"/> </compilers> </system.codedom>

Finalmente, en la consola del administrador de paquetes, agregue update-package

Ejecutar el sitio web localmente y ver cualquier error de compilación que fue corregido por mi segundo párrafo (que coincide con las versiones de las referencias)