MVC Razor vista Intellisense roto en VS 2013/2015/2017

Tengo un proyecto existente escrito en VS2010 que cuando se carga en VS2010 funciona perfectamente.

Cuando cargo este mismo proyecto en VS2013, las vistas MVC Razor contienen muchos errores, como si el archivo de configuración no estuviera en la carpeta de vistas.

Parece que no ha cargado correctamente el editor Razor utilizando los archivos de configuración de la carpeta raíz y de las vistas, y en su lugar me da errores como …

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

y …

 'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'LabelFor' and no extension method 'LabelFor' accepting a first argument of type 'System.Web.WebPages.Html.HtmlHelper' could be found (are you missing a using directive or an assembly reference?) 

¿Alguna idea de lo que puede ocasionar esto?

Editar: archivos de configuración según lo solicitado ….

Desde el archivo web.config principal (no todo, ya que es demasiado grande para publicar)

                         

Archivo de configuración en “~ / Views /” …

     

Consideré editar la publicación de @ ChrisMoschini, pero pensé que era lo suficientemente diferente. Mi problema era que comencé una nueva aplicación MVC5, y copié a ciegas en demasiadas configuraciones de web.config de un antiguo proyecto de MVC3 que quería usar como plantilla / punto de partida. Hacer esto me hizo tener algunas versiones no válidas referenciadas en mi web.config.

Para solucionarlo, creé otro nuevo proyecto MVC5 y me aseguré de que los siguientes valores de configuración en mi proyecto malo coincidieran con la aplicación MVC5 no modificada. Nuevamente, no copie ciegamente estos números de versión. Solo asegúrate de que coincidan con una aplicación MVC de vanilla de la versión que intentas poner en práctica

en la raíz web.config :

  ...  ...   ...   ...  

en Views\Web.config :

  ... 
...
... ...

Algunos de mis proyectos tuvieron este problema durante meses. Intenté tantas soluciones y nada funcionó. Los problemas parecían estar en los proyectos: el mismo proyecto tendrá un problema Intellisense en todas las computadoras con Visual Studio. Finalmente llegué a este post: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

En nuestro caso, la causa fue que el directorio de salida de todos esos proyectos se cambiaron a otro que no fuera “bin \”. Al cambiar OutputPath a “bin \” (y limpiar el proyecto, cerrando y luego volviendo a abrir Visual Studio), devolví Intellisense.

La publicación mencionada anteriormente también proporcionó una solución alternativa para mantener un directorio de salida por separado y al mismo tiempo tener Intellisense.

Espero que esto ayude a alguien algún día.

MS dice que para VS2013 “los archivos Intellisense para Razor (CSHTML y VBHTML) están limitados al marcado HTML”.

Pero si agrega estas dos líneas dentro de cada .cshtml, el intellisense funcionará nuevamente para MVC3 en VS2013:

 @using System.Web.Mvc.Html @inherits System.Web.Mvc.WebViewPage 

En lugar de dynamic puede poner el tipo de su modelo.

Recientemente resolví este problema yo mismo. Actualicé de MVC4 a MVC5 (específicamente 5.1). La actualización a una versión más nueva de MVC causó este caos y pasé horas tratando de resolverlo. Pequeños cambios en el archivo Web.Config corrigieron el problema intellisense.

¿Dijo que el proyecto funciona en VS2010, pero no en 2013? Vea esta respuesta aquí .

Recomiendo actualizar a MVC5 . No es doloroso y la actualización debería ser bastante perfecta.

Si actualiza a MVC5 y todavía no está recibiendo intellisense, debe actualizar el archivo Web.Config manualmente ya que la actualización puede no hacer esto correctamente.

Aquí hay una versión modificada de su Web.conifg en la carpeta / Views que debería reflejar los cambios para MVC5.

 < ?xml version="1.0"?>    

Si la actualización no es una opción, me temo que tendrá que seguir utilizando VS2010 si quiere soporte de intellisense para MVC3. Sin embargo, sugiero actualizar a MVC5.

Actualicé un proyecto de MVC3 a MVC5 e hice todo lo posible para evitar la única respuesta verdadera a este problema que recomienda Microsoft:

Comience con un nuevo proyecto y transfiera los bits resultantes a su proyecto existente.

Ese proceso es una gran pérdida de tiempo, y parece que Microsoft debería hacer viable una ruta de actualización real, pero estoy aquí para decirle que el problema aquí es emocional y no técnico: realmente necesita crear un nuevo proyecto MVC5. y reemplace lo siguiente con el resultado de ese nuevo proyecto MVC5:

 \Packages\* \Project\Project.csproj \Project\packages.config \Project\Web.Config \Project\Views\Web.Config \Project\Areas\*\Views\Web.Config 

Si no lo haces, darás vueltas en círculo por toda la eternidad tratando de encontrar la única configuración que explota. En nuestro caso, tenía el Web.Configs idéntico al recién creado, el proyecto MVC5 Razor Intellisense-working, había ejecutado cada variedad de herramienta de actualización que pude encontrar, lo que sea. Intellisense se negó a trabajar.

Después de simplemente volar el .csproj y web.configs, etc., Intellisense volvió mágicamente a la vida. Difundiendo los 2 lados, ninguna de las respuestas que he encontrado coincide con lo que estoy viendo. Web.Configs son casi idénticos, y los bits que son diferentes deberían ser irrelevantes. El cambio principal es realmente lo que hay en \ Packages \ – muchas dlls más antiguas de Razor, MVC y WebPages han desaparecido. Ese podría ser el truco, pero sáltese eso y ahórrese un montón de tiempo: simplemente haga un nuevo proyecto MVC5 y vacíe los archivos arriba mencionados. Es el único método sensato de actualización.

Para cualquier otra persona que pueda toparse con esto, no encontré ninguna de las respuestas anteriores para resolver realmente mi problema o no pertenecer a él. De todos modos, la forma en que esto resolvió para mí e hizo que intellisense funcionara nuevamente fue ir a mi carpeta bin y eliminar todos los archivos allí y luego limpiar / reconstruir y se solucionó.

Cuando creé un nuevo proyecto, intellisense funcionó bien, pero por alguna razón no funcionó en nuestro proyecto actual. La única diferencia que encontré en el archivo Views/Web.config fue que la nuestra tenía MVC versión 5.2.0.0 y un nuevo proyecto tenía 5.0.0.0. Lo que funcionó para nosotros fue cambiar esto:

  

a esto:

  

Esta pregunta se ha resuelto, pero estoy agregando esto para los futuros, ya que ninguno de los anteriores funcionó para mí:

Intenta ejecutar Visual Studio como administrador.

De alguna manera, cuando intenté eliminar mis paquetes nuget (que contienen todas las referencias requeridas, como System.Web.Mvc, me dijeron que necesitaba permiso de MyPC \ Me. Ridículo! (Soy el único usuario y solo administrador … ) En cualquier caso, ejecutar como administrador al menos me permite acceder a los archivos que corrigieron intellisense.

Una combinación de los siguientes me ayudó a resolver el problema:

  • Creando un nuevo Proyecto MVC
  • Comparando las versiones en las vistas archivos web.config de los proyectos existentes y nuevos
  • Corregir las versiones en consecuencia (ver abajo)
  • Eliminar todos los archivos en la carpeta bin
  • Limpiando la solución
  • y finalmente reconstruir la solución
    
[...]

He tenido esto una y otra vez; ¡Estoy en mi tercer proyecto nuevo y me está volviendo loco! Creo que pude haber encontrado la razón del problema. Agregué archivos, pero no los incluí en Visual Studio. Así que ahora he elegido ver todos los archivos:

enter image description here

Luego, para todas mis carpetas que agregué, las incluyo:

enter image description here

El problema es que esto solo aparece cuando abres un sitio de MVC como un proyecto, y no cuando lo abres como un sitio web.

Eventualmente tuve un montón de otros problemas en mi PC debido a un locking del servidor de red y terminé por volver a instalar Visual Studio.

Esto aparentemente resolvió el problema … no tengo idea de cómo pero lo hizo.

Me pregunto si tal vez en mi caso fue simplemente una instalación defectuosa en lugar del típico problema.

Por esa razón, marcaré esto como la respuesta, pero +1 todas las otras respuestas, ya que son potencialmente buenas respuestas a este problema.

Sin embargo, encontré que Microsoft afirma claramente que Visual Studio 2013 no es compatible con intellisense en versiones inferiores de MVC que 4, por lo que si está utilizando MVC 3 actualice su proyecto si está utilizando una versión más nueva de MVC y nada más funciona intente reinstalar Visual Studio .

También vale la pena señalar … MVC ahora es un paquete nuget, así que no instale MVC desde el redistribuidor de descargas, permita que VS lo resuelva.

En mi caso, moví todas las vistas de un Área a la carpeta de Vistas de la raíz, así que creo que VS se confundió en cuanto a dónde estaba mi web.config. Lo renombré a Web.config, de web.config y luego hice una edición de los contenidos de la configuración (como cambiar el número de versión del dll de fábrica de la máquina de afeitar de 5.2.2.0 a 5.2.3), pero luego lo cambié espalda.

Luego salí a caminar durante unos 30 minutos y volví y reinicié VS y ¡lo arreglaron!

En MVC 5 si intenta agregar un área simplemente agregando una carpeta en Áreas y subcarpetas para Controladores, Vistas, Modelos, etc., no tendrá el archivo * AreaRegistration.cs que registra el área, o la web.config en vistas que permiten a VS comprender los elementos de afeitar que incluye en sus vistas. El resultado es que intellisense no funciona en su opinión para cosas como ViewBag. Si tiene ejemplos de esos archivos en otras áreas, puede copiarlos y actualizarlos según corresponda, o puede comenzar de nuevo con su Área haciendo clic derecho en Áreas y haciendo un Área de agregado que creará esos archivos para usted.

He cambiado de

  

a esto:

  

¡Y funcionó!

Actualice los paquetes de NuGet usando la consola de Package Manager en Tool, Library package Manager ..

En la línea de comandos … PM> Update-Package Esto actualizará los paquetes NuGet y verificará la versión actual de System.web.MVC y actualizará esta versión en el archivo web.config en la carpeta Views.

              

Cierre la solución y vuelva a abrir.

Espero que esto funcione !!!

Tuve este problema durante seis meses y me di cuenta de que necesitaba mover mis directivas @model a la parte superior de las páginas. Anteriormente los tenía dentro de bloques de código.

Estoy usando Visual Studio 2012. Intenté todo lo anterior pero finalmente el problema se resuelve instalando:

ASP.NET y Web Tools 2013.1: http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1- for-visual-studio-2012.aspx

Me encontré con un problema similar. Tenía un proyecto de MVC 5 creado con VS2015 Community Edition que necesitaba trabajar con VS2013 Ultimate. Eliminar el siguiente bloque del archivo raíz web.config es lo que finalmente permitió a IntelliSense volver a funcionar en mis vistas Razor en VS2013.