visual the studio not net name mvc mensaje exist error does current cs0103 context compilador asp asp.net-mvc-3

asp.net mvc 3 - the - ViewBag.Title error



the name viewbag does not exist in the current context visual studio 2017 (9)

¿Tiene una referencia a Microsoft.CSharp y System.Core ?

MVC Views (generalmente) se compila dinámicamente cuando accede a su sitio, no cuando compila la aplicación en VS. Me imagino que verá problemas al ejecutar el sitio. Solo agrega las dos referencias y estarás bien.

Trabajando contra el RC2 actual: la plantilla que se genera en las vistas de Razor incluye:

@{ ViewBag.Title = "Details1"; Layout = "/Views/Shared/_Public.cshtml"; }

Con un garabato rojo debajo de ViewBag.Title y este error del compilador: ''

Error 4 One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll? c:/Visual Studio 2010/Projects/myProj/Views/Webinar/Details1.cshtml 6 2 TTSTrain.Webinars.WebEntry

Pero el proyecto construye y funciona correctamente. ¿Es el error indicativo de otros problemas que deben abordarse?


Al usar la respuesta de Peters, logré resolver el problema con Html.EditorFor (m => m.xxx) subrayar los errores en los archivos chtml. Aunque el error de ViewBar persistió. Así que cambié el web.config como este

<compilation debug="true" targetFramework="4.5.1"> <assemblies> <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </assemblies> </compilation>

Observe la línea Microsoft.Csharp. Lo anterior hizo el truco y ahora el editor chtml está claro a partir de los subrayados rojos. Gracias peter


Ese es el momento en que se leen otros campos en ViewBag. Así que si los estás pasando desde el controlador. ViewBag.yourobjectDto = yourObjectDto;

asegúrese de que esta línea no esté bloqueada a través de una condición o algo así.


Lo resolví de la siguiente manera:

Primero noté que al usar gacutil (Global Assembly Cache Utility) contenía dos referencias a System.Core, una a la versión 4.0 y otra a la versión 3.5. Aparentemente, dentro de las vistas de la maquinilla de afeitar, incluso si en el proyecto tenía la referencia correcta a la versión 4.0, todavía estaba usando la versión 3.5 y es por eso que estaba recibiendo el error sobre los tipos dinámicos. Para verificar si ese es su caso, abra como administrador el símbolo del sistema de Visual Studio y ejecute:

gacutil -l System.Core

Para eliminar la referencia a la versión anterior de System.Core, hice los siguientes pasos:

- cd %systemroot%/assembly/

Desde aquí puede tener más de un directorio "gac", por lo que tendrá que buscar dentro de cada uno para encontrar su componente. Para mí, estaba dentro del directorio "gac_MSIL".

- cd gac_msil - cd System.Core - cd <assembly version number>__<public key token> - erase *.* Say "y" to are you sure. - cd .. - rd <assembly version number>__<public key token> - cd .. - rd System.Core

Después de eso, volví a abrir mi solución en Visual Studio y el error desapareció, hace referencia correctamente a System.Core 4.0 y ya no recibía los errores dinámicos :)

Espero que te ayude también, Best, N.


No tengo este problema al ejecutar VS 2012 como administrador.

De lo contrario, lo que funcionó para mí:

en la configuración web raíz se ha agregado como referencia recomendada para corregir el ensamblaje como elemento secundario del nodo de compilación`

<system.web> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </assemblies> </compilation> </system.web>

set copy local = true properties para System.Core y Microsoft.CSharp`


Similar a la respuesta de @Kaiser, experimenté este problema como resultado de tener múltiples ensamblajes de System.Core en el GAC.

Sin embargo, elegí no borrar el ensamblaje 3.5. En cambio, en el sitio web Views.config, modifiqué la configuration/system.web/compilation node de la siguiente manera:

<compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </assemblies> </compilation>

La línea importante es el último nodo de assembly : le dice al compilador de Razor qué versión de ensamblaje de GAC debe usar.

Una vez que hice esto, todo estaba bien en mi opinión de Razor.


Tratar

Page.Title = "Details1";

Podría funcionar.


Tuve exactamente el mismo problema. De forma predeterminada, cuando crea una aplicación MVC3, pega un web.debug.config y un web.release.config en la solución. Cuando me deshice de esos dos elementos, el problema de ViewBag se resolvió solo. Puede que tenga algo que ver con lo que Peter estaba diciendo arriba, pero no lo probé.


targetFramework el mismo problema después de eliminar el atributo targetFramework del elemento <compilation> en el archivo Web.config.

Una vez lo restauré a

<compilation debug="true" targetFramework="4.0">

¡Todo funcionó bien otra vez!