El nombre ‘modelo’ no existe en el contexto actual en MVC3

Agregué una página cshtml en un proyecto. Cuando intenté agregarle la siguiente statement, aparece un error: “El nombre ‘modelo’ no existe en el contexto actual”.

@model xyz.abc.SomeClass 

Revisé las referencias, todas están en su lugar. Agregué una carpeta web.config en la vista, pero eso no lo solucionó.

¿Hay algo que me pierdo?

Actualización: si está utilizando una versión más nueva de MVC, se aplica el mismo proceso, solo asegúrese de usar el número de versión correcto en la línea de web.config.

Bueno, me encontré experimentando lo mismo que tú, y después de investigar un poco más, ¡descubrí cuál es el problema!

Necesita incluir el MVC3 web.config predeterminado para la carpeta Vistas. MVC3 tiene dos: uno en la raíz de su aplicación y otro en la carpeta de vistas. Esto tiene una sección para espacios de nombres incluidos. Asegúrate de que el tuyo tenga el siguiente aspecto:

             

Le sugiero que cree un nuevo proyecto MVC3, luego simplemente copie el web.config creado para usted en su carpeta de vistas.

Importante Una vez que haya hecho eso, debe cerrar el archivo y volver a abrirlo. Voila! ¡Intellisense!

Me encontré con este mismo problema cuando creé un área nueva para organizar mis páginas. Mi estructura parece algo así como:

WebProject

  • [] Áreas
    • [] NUEVA Área
      • [] Controladores
      • [] Puntos de vista
  • [] Controladores
  • [] Puntos de vista
    • Web.config
  • Web.config

Las vistas creadas en la carpeta Vistas bajo WebProject funcionaban bien, pero las vistas creadas bajo NewArea arrojaban el siguiente error: “El nombre ‘modelo’ no existe en el contexto actual.” Para solucionar esto, copié el archivo web.config en la carpeta Vistas en WebProject a la carpeta Vistas en NewArea. Vea abajo.

WebProject

  • [] Áreas
    • [] NUEVA Área
      • [] Controladores
      • [] Puntos de vista
        • Web.config
  • [] Controladores
  • [] Puntos de vista
    • Web.config
  • Web.config

Me encontré con esto porque manualmente creé esta nueva área usando Agregar -> Nueva carpeta para agregar las carpetas. Debería hacer clic derecho en el proyecto y seleccionar Agregar -> Área. Entonces Visual Studio se habría encargado de configurar el área correctamente.

Si sus vistas se encuentran en un conjunto de biblioteca de clases, lo que es útil para la reutilización de vistas compartidas entre proyectos, entonces simplemente hacer lo que Adam sugiere podría no ser suficiente. Todavía tenía problemas incluso con eso.

Pruebe esto en su web.config en la raíz de su proyecto:

 < ?xml version="1.0" encoding="utf-8"?>    

Y esto en la web.config en su carpeta de vistas:

 < ?xml version="1.0"?>    

Esto funcionó para mí. Ahora tengo intellisense y no hay errores de comstackción en mis vistas en un proyecto que no sea de MVC que luego puedo hacer referencia desde múltiples sitios web de MVC.

Me encontré con este problema cuando inadvertidamente tuve una copia del archivo de vista (About.cshtml) para la ruta / sobre en el directorio raíz. (No la carpeta de vistas) Una vez que saqué el archivo de la raíz, el problema desapareció.

Tuve problemas similares al usar VS2012 y VS2013.
Agregando la siguiente línea a en el web.config principal trabajado:

  

Si la línea ya estaba allí pero decía 2.0.0.0, cambiarla a 3.0.0.0 funcionó.

Actualización: 5/5/2015 Para su proyecto MVC 5, necesita configurar la Versión a 5.0.0.0 en su /views/web.config

    

Mientras declaras el modelo en la parte superior de la vista usando un código como este:

 @model MyModel 

necesita capitalizar sus referencias a continuación, por ejemplo:

 @Html.Encode(Model.MyDisplayValue) 

Creo que una falta de web.config en la carpeta Views sería la causa principal de esto, pero si eso se soluciona y el problema persiste, compruebe que está utilizando Model , no Model , para referirse a él en la fuente.

Me encontré con este problema también. Mis circunstancias fueron un poco diferentes.

  1. Una de las carpetas de mi vista se movió accidentalmente al directorio raíz de mi proyecto. Esto condujo a la ruta project_root/SignUp/ViewName coincide antes de project_root/Views/SignUp/ViewName . Esto causó el error @model .

  2. Después de volver a mover las vistas a la ubicación adecuada, el directorio se recreó de alguna manera en la raíz del proyecto. Esta vez, vacío. /SignUp/ViewName funcionó, pero /SignUp/ViewName 403 - Forbidden: Access is denied. error. La carpeta completa debe eliminarse de la raíz del proyecto.

Espero que esto ayude a alguien. Pasé horas creyendo que el problema fue causado por nuestra reciente actualización de MVC 3 a MVC 4. Solo una nota: los problemas de actualización solo deberían ocurrir entre MVC 2 y MVC 3. Si ve este problema en versiones posteriores, probablemente no se deba a la mejorar.

Me llevó años resolver este problema, pero finalmente espero haberlo resuelto en MVC, que es similar:

He reinstalado ASP.NET 4.5 ( http://www.asp.net/downloads )

He seguido el tutorial de actualización en http://www.asp.net/whitepapers/mvc4-release-notes

PERO este párrafo mencionado es incorrecto para mí

 System.Web.Mvc, Version=4.0.0.0 System.Web.WebPages, Version=2.0.0.0 System.Web.Helpers, Version=2.0.0.0 System.Web.WebPages.Razor, Version=2.0.0.0 

Como tengo Razor en System.Web.Razor , cambié el espacio de nombre de la razor a System.Web.Razor.

Agregue esto a su web.config

    

He agregado la referencia de ensamblaje a todos estos conjuntos anteriores

Localice el elemento ProjectTypeGuids y reemplace {E53F8FEA-EAE0-44A6-8774-FFD645390401} con {E3E379DF-F4C6-4180-9B81-6769533ABE47}.

Eso es todo.

Es un error horrible pero:

Asegúrese de tener archivos Web.config en su View at Remote . Tal vez saltó para subirlo por los filtros de su progtwig Ftp.

Me faltaba web.config en Areas / MyArea / Views / web.config. Una vez agregado, funcionó bien. Esto fue con MVC 5 y .NET4.5

También hay otra razón. En mi caso, copié un archivo index.cshtml a la carpeta raíz web (fuera de la carpeta Vistas) como copia de seguridad desde el servidor remoto.

Entonces, seguí cambiando mi /views/web.config, seguí cambiando mi /views/home/index.cshtml y seguía ocurriendo un error … hasta que descubrí /index.cshtml fuera de la carpeta de vistas, lo eliminé y seguro ¡todo volvió a la normalidad!

Me encontré con este mismo problema, pero en mi caso, lo único que había cambiado era que había desinstalado Visual Studio 2012 e instalado Visual Studio 2013. Abrí nuestra solución, pero seguí recibiendo lo mismo. The name 'model' does not exist in current context error de The name 'model' does not exist in current context en cada vista Razor.

Mi compañero de trabajo sugirió buscar actualizaciones para VS2013. Después de instalar la actualización 1 de VS2013 , dejé de obtener este error.

Verifique su archivo de configuración en el directorio de vistas. en el agregar la clave para MVC 4/5

Reinstalar el nuget lo resolvió para mí

PM> Install-Package Microsoft.AspNet.Razor-Version 3.2.3

Para mí, este fue el problema. Todo este bloque faltaba en la sección.

          

Tengo el mismo problema después de actualizar los paquetes. Hice todo lo que escribió anteriormente en este tema, pero el subyacente rojo de la palabra clave modelo no ha desaparecido. Más tarde, encontré la solución: simplemente borré la carpeta ‘paquete’ del directorio de mi proyecto y la reconstruí, mientras tanto permití a NuGet restaurar los paquetes faltantes. ¡Refrescado, y listo!

Compruebe que su archivo web.config debe existir en los archivos publicados

Estaba enfrentando el mismo problema y luego encontré una solución. La solucion es:

  1. Cerrar Visual Studio
  2. Eliminar el archivo SUO
  3. Reiniciar Visual Studio

El archivo .suo es un archivo oculto en la misma carpeta donde existe el archivo de solución .svn . Espero, funcionará!