vistas tutorial mvc extension español cshtml con code asp.net asp.net-mvc razor asp.net-mvc-4

asp.net - tutorial - ¿Por qué los comandos @Scripts y @Styles no se reconocen en el archivo MVC4 Razor?



razor insert c# code (6)

Asegúrese de que el ensamblado System.Web.Optimization.dll haya sido referenciado en su proyecto y que el <add namespace="System.Web.Optimization"/> se haya agregado a su archivo ~/Views/web.config (no ~/web.config archivo ~/web.config ):

<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.Optimization"/> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor>

El ensamblado System.Web.Optimization.dll se encuentra dentro de Microsoft.AspNet.Web.Optimization NuGet, así que asegúrese de que esté instalado en su proyecto (cuando crea un nuevo proyecto ASP.NET MVC 4 en Visual Studio usando Internet Plantilla NuGet se agrega automáticamente al proyecto).

El siguiente archivo de diseño MVC4 Razor carga varios paquetes de scripts y scripts creados en Bundle.config.

<!DOCTYPE html> <html class="no-js" lang="en"> <head> <meta charset="utf-8" /> <title>XXX Beta</title> @Scripts.Render( "~/bundles/bundle_jquery", "~/bundles/bundle_modernizr", "~/bundles/bundle_foundation", "~/bundles/bundle_jhs") @Styles.Render( "~/Content/bundle_foundation", "~/Content/bundle_jhs") @RenderSection("pageHeadContent", false) </head> <body> <div id="bodyContainer"> @Html.Partial("Partial/_header") <div id="contentContainer"> <div id="mainContentContainer"> <div id="sidebarContainer"> @RenderSection("sidebarContent", required: true) </div> @RenderBody() </div> <div class="clearBoth"> </div> </div> @Html.Partial("Partial/_footer") </div> </body> </html>

Cuando se representa la página, se produce el siguiente error. Por algún motivo, los comandos @Scripts y @Styles no se reconocen. Si escribo "@Scripts" en los archivos, el Intellisense no muestra / muestra el comando. El proyecto hace referencia a System.Web.Optimization, que se usa en Bundle.config.

¿Qué podría estar causando que los comandos @Scripts y @Styles no sean reconocidos?

Error del servidor en la aplicación ''/''.

error de compilación

Descripción: Se produjo un error durante la compilación de un recurso requerido para atender esta solicitud. Revise los siguientes detalles de error específicos y modifique su código fuente de manera adecuada.

Mensaje de error del compilador: CS0103: el nombre ''Scripts'' no existe en el contexto actual

Error de fuente:

Línea 4: Línea 5: XXX Beta Línea 6: @ Scripts.Render (Línea 7: "~ / bundles / bundle_jquery", Línea 8: "~ / bundles / bundle_modernizr",

Archivo de origen: c: / Users / username / Documents / Visual Studio 2010 / Projects / XXX / Solution / xxx.website / Views / Shared_sidebarLayout.cshtml Line: 6

Mostrar salida detallada del compilador:

Mostrar fuente de compilación completa:

Información de la versión: Microsoft .NET Framework Version: 4.0.30319; Versión ASP.NET: 4.0.30319.272


Como se indica here :

  1. abra la carpeta: Users / (usuario) / AppData / Local / Microsoft / VisualStudio (versión)

  2. eliminar la carpeta: ComponentModelCache

  3. reinicie Visual Studio (ComponentModelCache se vuelve a crear y el problema desaparece)


En mi caso, tuve que cambiar el marco de destino de mi proyecto de 4.5 a 4.5.1.



Hay dos archivos webconfig en su proyecto ... ambos necesitan tener

<add namespace="System.Web.Optimization"/>


Si está utilizando paquetes (como en el ejemplo en cuestión), es posible que también deba agregar la configuración del paquete a su aplicación:

Agregue la configuración del paquete a su carpeta App_Start:

public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate.js", "~/Scripts/jquery.validate.unobtrusive.js" )); bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/YourStyles.css")); #if DEBUG BundleTable.EnableOptimizations = false; #else BundleTable.EnableOptimizations = true; #endif } }

Agregue la siguiente línea a su Global.asax.cs

BundleConfig.RegisterBundles(BundleTable.Bundles);