Agregué una página cshtml en un proyecto. Cuando traté de agregarle la siguiente declaración, 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é un web.config en la carpeta de vista, pero eso no lo solucionó.
¿Hay algo que me esté perdiendo?
asp.net-mvc-3
razor
user602737
fuente
fuente
Respuestas:
Actualización: si está utilizando una versión más reciente de MVC, se aplica el mismo proceso, solo asegúrese de usar el número de versión correcto en la
<host>
línea 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.
Debe incluir el archivo 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. Tiene una sección para espacios de nombres incluidos. Asegúrate de que el tuyo se parezca a esto:
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!
fuente
MAIN
archivo web.config<add key="webpages:Version" value="3.0.0.0" />
Me encontré con este mismo problema cuando creé una nueva área para organizar mis páginas. Mi estructura se veía así:
Proyecto Web
Las vistas creadas en la carpeta Vistas en WebProject funcionaron bien, pero las vistas creadas en NewArea arrojaron el siguiente error:
Para solucionar esto, copié el archivo web.config en la carpeta Vistas en WebProject a la carpeta Vistas en NewArea. Vea abajo.
Proyecto Web
Me encontré con esto porque creé manualmente esta nueva área usando Agregar -> Nueva carpeta para agregar las carpetas. Debería haber hecho clic con el botón derecho en el proyecto y haber seleccionado Agregar -> Área. Entonces Visual Studio se habría encargado de configurar el área correctamente.
fuente
Views/Web.config
estaba haciendo referencia a laSystem.Web.Mvc.MvcWebRazorHostFactory
versión 5.0.0.0, y tenía un Área de terceros que hacía referencia a v4.0 y las vistas cooperaban. VolvíViews/Web.config
a v4.0 y todo funcionó.Si sus vistas están en un ensamblado de biblioteca de clases, lo cual es útil para reutilizar vistas compartidas entre proyectos, entonces hacer lo que sugiere Adam 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:
Y esto en web.config en su carpeta de vistas:
Esto funcionó para mí. Ahora tengo intellisense y no tengo errores de compilación en mis vistas en un proyecto que no es MVC al que luego puedo hacer referencia desde varios sitios web MVC.
fuente
Me encontré con este problema cuando inadvertidamente tuve una copia del archivo de vista (About.cshtml) para la ruta / about en el directorio raíz. (No la carpeta de vistas) Una vez que moví el archivo fuera de la raíz, el problema desapareció.
fuente
Tuve problemas similares al usar VS2012 y VS2013.
Agregar la siguiente línea a <appSettings> en el web.config principal funcionó:
Si la línea ya estaba allí pero decía 2.0.0.0, cambiarla a 3.0.0.0 funcionó.
fuente
Actualización: 5/5/2015 Para su proyecto MVC 5, debe configurar la versión 5.0.0.0 en su /views/web.config
fuente
Mientras declara el modelo en la parte superior de la vista usando un código como este:
debe escribir en mayúscula sus referencias a continuación, por ejemplo:
Creo que un web.config faltante en la carpeta Vistas sería la causa principal de esto, pero si se soluciona y el problema persiste, verifique que esté usando Model , no model para hacer referencia a él en la fuente.
fuente
También me encontré con este problema. Mis circunstancias fueron un poco diferentes.
Una de mis carpetas de vista se movió accidentalmente al directorio raíz de mi proyecto. Esto llevó a la ruta que
project_root/SignUp/ViewName
coincidía antesproject_root/Views/SignUp/ViewName
. Esto provocó el@model
error.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/
arrojó un403 - Forbidden: Access is denied.
error. Se debe eliminar toda la carpeta 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 potenciar.
fuente
Me tomó 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í
Como tengo Razor en System.Web.Razor , cambié el espacio de nombres de Razor a System.Web.Razor.
Agregue esto a su web.config
He agregado la referencia de ensamblaje a todos estos ensamblajes anteriores
Busque el elemento ProjectTypeGuids y reemplace {E53F8FEA-EAE0-44A6-8774-FFD645390401} por {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
Eso es todo.
fuente
<add key="webpages:Version" value="2.0.0.0" />
es el factor determinante, la otra configuración no es necesaria.3.0.0.0
pero sí, ¡esto es muy importante!Es un error horrible pero:
Asegúrese de tener archivos Web.config en su Vista en Remoto . Tal vez omitió subirlo por los filtros de su programa Ftp.
fuente
Faltaba web.config en Areas / MyArea / Views / web.config. Una vez agregado, funcionó bien. Esto fue con MVC 5 y .NET4.5
fuente
También hay otra razón. En mi caso, había copiado un archivo index.cshtml en la carpeta raíz web (fuera de la carpeta Vistas) como copia de seguridad del servidor remoto.
Entonces, seguí cambiando mi /views/web.config, seguí cambiando mi /views/home/index.cshtml y el error siguió sucediendo ... hasta que descubrí el /index.cshtml fuera de la carpeta de vistas, lo eliminé y seguro, ¡todo volvió a la normalidad!
fuente
Me encontré con el mismo problema, pero en mi caso, lo único que había cambiado es que había desinstalado Visual Studio 2012 e instalado Visual Studio 2013. Abrí nuestra solución, pero seguía recibiendo el mismo
The name 'model' does not exist in current context
error en todas las vistas de Razor.Mi compañero de trabajo sugirió buscar actualizaciones para VS2013. Después de instalar VS2013 Update 1 , dejé de recibir este error.
fuente
Verifique su archivo de configuración en el directorio de vistas. en el agregar la clave para MVC 4/5
fuente
Reinstalar el nuget lo resolvió por mí.
PM> Paquete de instalación Microsoft.AspNet.Razor -Version 3.2.3
fuente
Para mí, este fue el problema. Todo este bloque faltaba en la sección.
fuente
Tengo el mismo problema después de actualizar los paquetes. Hice todo lo que ha escrito anteriormente en este tema, pero el rojo subyacente de la palabra clave modelo no ha desaparecido. Más tarde, encontré una solución: simplemente eliminé la carpeta 'paquete' del directorio de mi proyecto y la reconstruí, mientras tanto, permitió a NuGet restaurar los paquetes faltantes. ¡Refrescado y listo!
fuente
Compruebe que su archivo web.config debe existir en los archivos publicados
fuente
Estaba enfrentando el mismo problema y luego encuentro una solución. La solucion es:
El archivo .suo es un archivo oculto en la misma carpeta donde existe el archivo de solución .svn . ¡Espero que funcione!
fuente