Acabo de crear un proyecto ASP.NET MVC 4 y utilicé Visual Studio 2012 RC para crear un controlador y vistas de afeitadoras Index
y Create
acciones.
Cuando llegué a ejecutar la aplicación y examiné la Create
vista, se mostró el siguiente error:
Mensaje de error del compilador: CS0103: el nombre 'Scripts' no existe en el contexto actual
El problema es el siguiente código que se agregó automáticamente al final de la Vista:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
¿Por qué no existen los scripts?
Miré la clase de página web base en Assembly System.Web.Mvc.dll, v4.0.0.0
Puedo ver las siguientes propiedades auxiliares disponibles:
- Ajax
- HTML
- Url
Pero nada llamado Scripts.
¿Algunas ideas?
EDITAR:
Mi archivo Web.config se ve así (sin tocar el creado por Visual Studio):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
EDITAR # 2:
La gente está blogueando sobre el uso del @Scripts
ayudante:
Sin embargo, después de instalar Visual Studio 2012 RC en una nueva instalación de Windows 8, todavía no puedo usarlo @Scripts
, ¡aunque Visual Studio lo agrega a la Vista generada!
Las soluciones se presentan a continuación.
No estoy seguro de cómo cerrar esto, porque al final una actualización pareció resolver el problema. Verifiqué dos veces que había realizado una instalación limpia, usando un nuevo proyecto. Pero el mismo proyecto fallido que hice funciona bien ahora después de varias actualizaciones y sin intervención obvia manual. Gracias por todos los pensamientos, pero definitivamente hubo un problema en ese momento;)
fuente
<system.web.webPages.razor> <pages pageBaseType=""> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> etc... </pages>
Respuestas:
La clave aquí es agregar
a AMBOS archivos web.config. Mi escenario era que tenía la referencia System.Web.Optimization tanto en el proyecto como en el principal / raíz web.config pero @Scripts todavía no funcionaba correctamente. Debe agregar la referencia del espacio de nombres al archivo web.config de Vistas para que funcione.
ACTUALIZAR:
Desde el lanzamiento de MVC 4 System.Web.Optimization ahora está obsoleto. Si está comenzando con una solución en blanco, deberá instalar el siguiente paquete nuget:
Aún necesitará hacer referencia a System.Web.Optimization en sus archivos web.config. Para obtener más información, vea este tema:
Cómo agregar referencias a System.Web.Optimization para la aplicación MVC-3-convert-to-4
Como muchos señalaron, podría ser necesario reiniciar VS después de los pasos anteriores para que esto funcione.
fuente
Install-Package Microsoft.AspNet.Web.Optimization
desde una plantilla ASP.NET MVC4 en blanco, ya que no se incluye de manera predeterminada.@Styles
y@Scripts
son 2 nuevos ayudantes proporcionados porSystem.Web.Optimization
biblioteca. Como su nombre lo indica, agrupan y minimizan archivos o recursos CSS y JavaScript, respectivamente.Intente incluir el espacio de nombres
System.Web.Optimization
ya sea por@using
directiva o medianteweb.config
http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinificationACTUALIZAR
Microsoft ha movido la agrupación / minificación a un paquete separado llamado
Microsoft.AspNet.Web.Optimization
. Puedes descargar el ensamblaje desde nuget .Esta publicación te será útil.
fuente
System.Web.Optimization
espacio de nombres NO está en desuso,System.Web.Optimization.dll
es el.Faltaba un pequeño paso de lo anterior, que encontré en otra publicación. Después de agregar
a sus
~/Views/web.config
espacios de nombres, cierre y vuelva a abrir Visual Studio. Esto es lo que tuve que hacer para que esto funcionara.fuente
Estoy usando áreas, y acabo de encontrarme con este problema, simplemente copié los espacios de nombres desde la raíz web.config a las áreas web. config y ahora funciona !!
fuente
Tuve el mismo problema y usé WinMerge para ayudarme a rastrear esto. Pero a medida que lo investigaba más, descubrí que Rick tiene la publicación de blog perfecta para ello.
Resumen:
<add namespace="System.Web.Optimization"/>
a ambos archivos web.configInstall-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
fuente
Tuve el mismo problema:
La versión de System.Web.Optimization que estaba usando estaba desactualizada para MVC4 RC.
Actualicé mis paquetes usando el administrador de paquetes en VS 2010.
En este blog de MSDN , Andy habla sobre cómo actualizar su proyecto MVC 4 Beta a MVC 4 RC. Al actualizar mis paquetes, los Scripts (particularmente el de optimización web) se resolvieron por mí:
Para instalar el último paquete System.Web.Optimization, use la Consola del Administrador de paquetes (Herramientas -> Biblioteca Administrador de paquetes -> Consola del Administrador de paquetes) y ejecute el siguiente comando:
Utilice el archivo System.Web.Optimization incluido en el paquete en sus referencias.
Para actualizar otros paquetes: menú Herramientas -> Administrador de paquetes de biblioteca -> Administrar paquetes NuGet para la solución.
fuente
Cree una nueva aplicación de Internet MVC 4 RC y ejecútela. Navegue hasta Iniciar sesión que usa el mismo código
Lo que permite que Login.cshtml funcione es el archivo Views \ Web.config (no la versión raíz de la aplicación) que contiene
¿Por qué su vista Crear no funciona y el Inicio de sesión sí?
fuente
Importar System.Web.Optimization en la parte superior de su vista de la maquinilla de afeitar de la siguiente manera:
fuente
Me encontré con este problema, sin embargo, mientras ejecutaba el comando:
Recibí el mensaje críptico (tengo que amar un gran juego de palabras antes de la primera taza de café):
Estoy ejecutando esto en Windows XP SP3 (no por elección) y lo que encontré fue que tenía que seguir las instrucciones publicadas por el usuario artsnob en el Foro ASP.NET
Una vez que ejecuté esto, podría ejecutar la línea de comando para actualizar la Web. Optimización.
Espero que esto le ahorre a alguien algo de investigación.
fuente
Solo escribe
fuente
Actualicé de Beta a RC y enfrenté 'Scripts' no existe problema. Navegó por toda la web y la solución final es lo que dijo N40JPJ más otro trabajo:
Copie lo siguiente en View \ Web.config:
y lo siguiente dentro de View \ Shared_Layout.cshtml
Espero eso ayude.
fuente
if (IsSectionDefined())
menos que proporcione unaelse
cláusula. El hecho de que esté diciendorequired: false
ya permite que esa sección no se defina, y en ese caso se omitirá la sección. Entonces este es un código adicional innecesario.Aparentemente ha creado un tipo de proyecto 'Vacío' sin la carpeta 'Scripts'. Mi consejo: cree un tipo de proyecto 'Básico' con la carpeta completa 'Scripts'.
Con respecto a todos los desarrolladores.
fuente
simplemente elimine / oculte el código de crear y editar la vista de la maquinilla de afeitar de su controlador.
fuente
buena suerte...
fuente
Uno más para el bote: pasaron años tratando de resolver el mismo problema, a pesar de que se definió en web.config para root y la raíz de Views. Resulta que lo agregué por error al elemento
<system.web><pages><namespaces>
y no al<system.web**.webPages.razor**><pages><namespaces>
elemento.Muy fácil de perder eso!
fuente
Cuando entro en una página que tiene este código:
Este error ocurre: Error. Se produjo un error al procesar su solicitud.
Y esta excepción se registra en mis registros:
He intentado todos los consejos en esta página y ninguno de ellos me resolvió. Así que busqué en mi carpeta Paquetes y noté que tengo dos versiones para System.Web.Optmization.dll:
Mi proyecto hacía referencia a la versión beta anterior. Solo cambié la referencia a la versión más nueva (69KB) y todo funcionó bien.
Creo que podría ayudar a alguien.
fuente
Eso tiene una solución obvia. Tuve el mismo problema más tarde. No está relacionado con las referencias de ensamblaje o .... Ocurrirá en llamadas de jerarquía de vistas parciales MVC, cuando tenga estructuras de página complicadas. Por lo tanto, llamar / representar cada parte por separado en cada página (tal vez una página maestra o parcial) hará que no se vean las partes requeridas de la página, como el siguiente código:
Eso simplemente obliga a la página a buscar y representar la sección relacionada y, en caso de falla, le muestra un mensaje de error como usted.
Por lo tanto, le sugiero que rastree sus páginas (como el rastreo del programa) desde el maestro a todos sus parciales para Detectar dependencias . Tal vez sea un trabajo terrible, pero no hay otras opciones disponibles aquí.
No es que, según mi experiencia, algunas situaciones condicionales en la programación provoquen que no se muestre el error correcto que causa el problema.
fuente
Tuve este problema después de agregar un Área a un proyecto que no tenía ninguno. Para deshacerse de él, simplemente copié el archivo web.config con la carpeta Vistas raíz en la carpeta Vistas del área y comenzó a funcionar.
fuente
Resuelvo este problema en MvcMusicStore agregando esta parte del código en _Layout.cshtml
y elimine este código de Edit.cshtml
Ejecute el programa inshallah trabajará con usted.
fuente
Para mí esto resolvió el problema, en la consola del administrador de paquetes NuGet, escriba lo siguiente:
fuente
Cuando comencé a usar MVC4 recientemente, enfrenté el problema anterior al crear un proyecto con las plantillas vacías. Pasos para solucionar el problema.
TOOLS
->Library Package Manager
->Packager Manager Console
pegar el siguiente comando y presionar enterInstall-Package Microsoft.AspNet.Web.Optimization
Nota: espere a que la instalación sea exitosa.<namespace="System.Web.Optimization" />
El paquete mencionado en el paso 1 agregará algunas bibliotecas del sistema a las referencias de la solución, como System.Web.Optimization no es una referencia predeterminada para plantillas vacías en MVC4.
Espero que esto ayude. Gracias
fuente
Tuve un error muy similar al actualizar un proyecto de MVC3 a MVC4.
En mi caso, tenía números de versión obsoletos en varias de mis configuraciones web.
Ex:
Asegúrese de revisar el Web.Configs en cada uno de sus directorios de Vistas.
Puede leer más sobre la actualización de un proyecto ASP.NET MVC 3 a ASP.NET MVC 4 .
fuente
Si agregó a su web.config y todavía muestra un mensaje, entonces necesita cerrar su proyecto y volver a abrirlo, ahora existirá y @ Styles.Render ("") y @ Scripts.Render () funcionarán bien.
fuente
Prueba esto:
fuente