Je viens de créer un projet ASP.NET MVC 4 et j'ai utilisé Visual Studio 2012 RC pour créer un contrôleur et des vues de rasoir pour Index
et des Create
actions.
Lorsque je suis arrivé pour exécuter l'application et que j'ai accédé à la Create
vue, l'erreur suivante s'est produite:
Message d'erreur du compilateur: CS0103: le nom «Scripts» n'existe pas dans le contexte actuel
Le problème est le code suivant qui a été ajouté automatiquement au bas de la vue:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Pourquoi les scripts n'existent-ils pas?
J'ai regardé la classe de page Web de base dans Assembly System.Web.Mvc.dll, v4.0.0.0
Je peux voir les propriétés d'assistance suivantes disponibles:
- Ajax
- Html
- URL
Mais rien ne s'appelle Scripts.
Des idées?
ÉDITER:
Mon fichier Web.config ressemble à ceci (intact de celui créé par 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>
EDIT # 2:
Les gens bloguent sur l'utilisation de l' @Scripts
aide:
Pourtant, après avoir installé Visual Studio 2012 RC sur une nouvelle installation de Windows 8, je ne peux toujours pas l'utiliser @Scripts
même si Visual Studio l'ajoute à la vue générée!
Les solutions sont présentées ci-dessous.
Je ne sais pas comment fermer cela, car au final, une mise à jour a semblé résoudre le problème. J'ai revérifié que j'avais effectué une installation propre, en utilisant un nouveau projet. Mais le même projet défaillant que j'avais fait fonctionne bien maintenant après diverses mises à jour et aucune intervention manuelle évidente. Merci pour toutes ces réflexions mais il y avait définitivement un problème à l'époque;)
<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>