Estoy comenzando a desarrollarme en ASP.NET nuevamente y encontré un pequeño error dentro de Visual Studio. Mis archivos .cshtml muestran errores al usar algunas funciones de la maquinilla de afeitar. Por ejemplo, "El nombre 'ViewBag' no existe en el contexto actual". Aquí hay una imagen:
Estoy usando un proyecto de demostración. Puede encontrar el proyecto aquí: https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
He revisado varios otros hilos y la mayoría sugiere actualizar los archivos web.config. Estos 2 archivos de configuración ya están presentes y, dado que es una demostración bastante popular, supongo que tiene toda la configuración requerida. Por supuesto, he revisado estos archivos de configuración y, de hecho, incluyen las soluciones sugeridas.
Otros detalles:
- Ya utilicé clean & rebuild en la solución, pero eso no cambió nada.
- Cuando creo un proyecto MVC completamente nuevo, funciona
- Mi amigo tiene el mismo problema y ambos usamos VS 2015 y Windows 10
- Todavía puedo ejecutar la aplicación y funciona.
Gracias por adelantado.
fuente
Respuestas:
Tuve este problema a pesar de tener toda la configuración correcta.
Resultó que había algunos archivos incorrectos en la caché de componentes, lo que impedía que las vistas de Razor reconocieran ViewBag, Model y HtmlHelpers . Eliminar estos archivos resolvió el problema (se crearon buenas versiones de estos archivos la próxima vez que abrí Visual Studio).
Los archivos se encuentran aquí:
Elimina los cuatro archivos:
Posteriormente, he visto el mismo problema en varias otras máquinas de desarrollo y esta solución lo resuelve rápidamente.
fuente
Actualice los números de versión en la configuración del
web.config
archivo en la carpeta Vistas.Si ha actualizado la versión MVC a través de nuget, debería ser:
Es posible que también sea necesario actualizar otras versiones de dependencia. Los problemas de compilación y espacio de nombres en Vistas para ayudantes y objetos de MVC suelen estar relacionados con
web.config
archivos desordenados dentro de las carpetas Ver.fuente
4.0.0.0
, pude verlo en las propiedades. ¿Cuál debería ser la solución en mi caso?*.cshtml
y los*.vbhtml
archivos y limpia y reconstruir la solución. VS 2019 16.1.2Busque "páginas web: Versión" en la configuración de la aplicación y actualícela a la versión 3.0.0.0. Mi web.config tenía
y lo actualicé a
fuente
Temporary ASP.NET Files
) no ayudó, pero esta respuesta lo hizo .Lo quité accidentalmente
web.config
de laViews
carpeta, pensando que era innecesario. Cuando lo devolví, comenzó a funcionar.fuente
Después de probar todo bajo el sol, resulta que algo había modificado mi
System.Web.WebPages.Razor
<sectionGroup>
en/Views/Web.Config
el CamelCase adecuadaSystem.Web.WebPages.Razor
a un todo-en minúsculassystem.web.webpages.razor
que en última instancia era mi muerte.Esperando que esto pueda ayudar a alguna otra pobre alma con este problema ...
Como referencia, esta es la entrada correcta (para mi escenario)
fuente
A veces no es suficiente cambiar los números de versión en la configuración de web.config. Este problema se produce porque Visual Studio 2015 no tiene herramientas mvc4.
La solución es actualizar su proyecto a MVC 5. Resuelve totalmente el problema. Puede obtener ayuda en esta página. Lo explica claramente.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
Por cierto, el equipo de Visual Studio declaró que agregarán compatibilidad con mvc4 a Visual Studio 2015 con la primera actualización.
fuente
Me enfrenté a este problema más veces y finalmente descubrí que sucedió porque la carpeta de vistas debería contener su propia configuración web
fuente
tarde para el juego, pero ninguna de estas soluciones funcionó para mí.
Actualicé a VS 2017 y el sitio funcionó, pero el compilador de Visual Studio rompió la mayoría de los archivos .cshtml
TLDR;
mysolution.sln tenía la versión incorrecta
por lo que desea crear una nueva solución con VS más reciente y compararla con la suya y copiar la información de la versión.
pasos completos de actualización:
fuente
He desperdiciado más de un día de trabajo en esto. Intenté todo en esta (y otras) publicaciones, sin éxito. Finalmente descubrí que necesitaba abrir el proyecto de una manera diferente. Acabo de actualizar un sitio web existente a Visual Studio 2015, MVC5, .NET framework 4.5.2 y estoy usando Windows 10, pero sospecho que la respuesta habría sido la misma para otras versiones de cada aplicación de software.
Así que esta es la opción de menú que estaba eligiendo para abrir un sitio web:
En lugar de esto, abrí el archivo csproj que define el proyecto usando esta opción de menú:
Luego tuve la opción de "solución limpia" a la que muchas otras personas se refieren:
Sin embargo, ni siquiera necesitaba esto, ¡todo funcionó! Bueno, de todos modos pasé al siguiente conjunto de problemas ...
fuente
Había agregado el controlador por
código correspondiente creado:
Mis errores se cambiaron cambiando el Paso 1 como:
código correspondiente creado:
El problema era: no había heredado mi clase de Controller
Otros mensajes en mi error incluidos, todos los cuales eran de este problema:
Espero que este cambio ayude a quienes no han prestado atención en sus pasos iniciales.
fuente
Después de haber probado al menos el 90% de cada solución / truco de este tema (y otros), ¡finalmente lo he resuelto! Alerta de spoiler, no hay rastro de lógica es la siguiente llamada "solución": Ejecutar la solución con todas las pestañas cerradas finalmente funcionó, cuando nada más me hubiera ahorrado el "ViewBag & Co no existe en el contexto actual" ... ¡Has sido advertido, sin maldita lógica!
Espero que algún día ayude a alguien ^^
fuente
En mi caso, tuve este problema solo en mi PC solo para un proyecto. Mi proyecto funcionó bien en VS2012, pero cuando se abrió en VS2017 tenía este problema.
El principal problema para mí aquí fue el caché. Mi proyecto apuntaba a las versiones anteriores en caché de dll para Razor y MVC y no encontraba características que se agregaron en versiones más nuevas, como ViewBag. ViewBag se agregó en la versión 3 de Razor, pero debido a que tenía la versión 2 de Razor en caché, no pudo encontrar ViewBag (pero pudo encontrar otras cosas que estaban presentes en la versión 2). Sin embargo, simplemente borrar el caché como en la respuesta aceptada no solucionó mi problema. Tuvimos que cambiar los archivos de configuración para decir "usar la versión 3 en lugar de 2" para Razor y "usar la versión 5 en lugar de 4" para MVC, luego cerrar VS, eliminar el caché y abrir el proyecto y reconstruir. Entonces las cosas se arreglaron. A continuación se muestran instrucciones más detalladas.
Aquí está la secuencia de cambios que me ayudaron a solucionar mi problema:
Aquí están esas líneas en mi caso:
(notas: 1) sus versiones pueden ser diferentes, solo estoy diciendo lo que se necesitaba hacer en mi caso 2) omití algunas cosas con "..." para abreviar 3) incluso si tiene una versión MVC similar a 5.3.2.0 aún debe ingresar 5.0.0.0, lo mismo con la versión de Razor: ingrese todos los ceros en 3.0.0.0)
En el archivo de configuración principal (el que está en el nivel superior) cambie
webPages:version
de 2.0.0.0 a 3.0.0.0.Este cambio probablemente no afectó la solución, pero aún lo mencionaré. Asegúrese de que la
<namespaces>
sección de la carpeta "Vistas" tenga exactamente el mismo contenido que el archivo .conifg principal en la raíz del proyecto, algo como:%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
(o cualquiera que sea su ruta correcta) tal como se sugiere en la respuesta (actualmente) aceptada por Fenton. También elimine el.scan
archivo, incluso si no se menciona en esa respuesta. Una vez que haya terminado, abra VS, limpie su proyecto y vuelva a construirlo. Las cosas deberían estar funcionando ahora. Funcionó para mí.fuente
Apagarlo y encenderlo nuevamente funcionó para mí. Puede intentar reiniciar Visual Studio.
fuente
Pude resolver el problema agregando lo siguiente en la parte superior de mi página .cshtml
Después de recompilar pude eliminar esta línea y el error desapareció.
fuente
Enfrenté un problema similar con uno de mis puntos de vista. En mi caso, limpié la solución e intenté reconstruirla y funciona.
fuente
el siguiente enlace puede ayudarte.
Te mostrará cuál podría ser el problema.
resuelve mi problema. de alguna manera había eliminado mi archivo web.config de la carpeta de vista.
fuente
Me enfrenté al mismo problema. Probé la solución Clean, Build and Rebuild, pero no funcionó para mí.
Así que por fin hice lo siguiente:
Espero que les funcione a ustedes también.
fuente
Después de actualizar una de las aplicaciones de mi cliente de ASP MVC 4 a ASP MVC 5, tuvimos errores de diseñadores relacionados con Html Helpers y ViewBag en páginas cshtml.
Para solucionar esos problemas, asegúrese de hacer lo siguiente: Instale la biblioteca de Asp.NET Web Helpers desde Nuget Abra el Web.config del proyecto y actualice los enlaces si no se han actualizado al instalar los paquetes de Nuget, por ejemplo
Busque "páginas web: Versión" en la configuración de la aplicación y actualícela a la versión 3.0.0.0. Mi web.config tenía
y lo actualicé a
Reinicie Visual Studio y reconstruya. Es posible que deba eliminar la carpeta bin de su proyecto
Visite esto: https://lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
fuente
Después de probar todo lo demás y sentirme un poco frustrado, actualicé .NET Framework en mi aplicación MVC5 de 4.5 a 4.5.2. De alguna manera solucionó mi problema. Espero eso ayude.
fuente
Resolví reemplazar en web.config
con
fuente