MVC 4 @Scripts “n'existe pas”
Je viens de créer une ASP.NET MVC 4 du projet et utilisé Visual Studio 2012 RC pour créer un Contrôleur et un Rasoir Vues pour Index
et Create
Actions.
Quand je suis venu pour exécuter l'application, et navigué à la Create
vue, l'erreur suivante a été montré:
Compilateur Message d'Erreur: CS0103: Le nom de "Scripts" n'existe pas dans
le contexte actuel
Le problème est le suivant code qui a été automatiquement ajouté à la partie inférieure de la Vue:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Pourquoi les Scripts n'existent pas?
J'ai regardé la Page Web de la base de classe de l'Assemblée System.Web.Mvc.dll, v4.0.0.0
Je peux voir l'assistance suivante propriétés disponibles:
- Ajax
- Html
- Url
Mais rien n'nommé Scripts.
Des idées?
EDIT:
De Mon Site Web.fichier de configuration ressemble à ceci (vierge de celui de Visual Studio de création):
<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 sont les blogs sur l'utilisation de l' @Scripts
helper:
Pourtant, juste après avoir installé Visual Studio 2012 RC sur un frais de Windows 8 installer je suis toujours pas en mesure d'utiliser @Scripts
même si Visual Studio ajoute à la générées Vue!
Solutions sont présentées ci-dessous.
Je ne suis pas sûr de la façon de fermer, parce que dans la fin d'une mise à jour semble résoudre le problème. J'ai vérifié que j'avais effectué une installation propre, à l'aide d'un nouveau projet. Mais le même défaut projet que j'avais fait fonctionne très bien maintenant, après diverses mises à jour et pas de manuel évident d'intervention. Merci pour toutes les pensées, mais il y avait certainement un problème à ce moment 😉
- déjà essayer d'ajouter dans le Web.config?
<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>
- J'ai ajouté la section à partir du Web.config, mais je n'ai rien changé dans le fichier.
- Tu veux dire "Mon point de Vue\Web.config" fichier n'est pas la racine d'application web.config. En tout cas, il est incorrect et manquant <ajouter le namespace="System.Web.L'optimisation"/>. Avez-vous installé VS12 Bêta avant la RC? Ce win8 version?
- J'ai fait un nettoyage Win8 installation de la version Release Preview ISO, avec une installation à partir de visual studio 2012 RC ISO, faire absolument certain qu'il n'était pas un conflit de versions.
- Mon Point De Vue\Web.config serait manquer les points de Vue dans les Domaines
Vous devez vous connecter pour publier un commentaire.
La clé ici est d'ajouter
à la FOIS sur internet.les fichiers de configuration. Mon scénario était que j'avais du Système.Web.L'optimisation de référence dans les deux projet et le principal/de la racine web.config mais @Scripts ne fonctionne toujours pas correctement. Vous devez ajouter l'espace de noms de référence pour les points de Vue web.fichier de config pour le faire fonctionner.
Mise à JOUR:
Depuis la sortie de la MVC 4 Système.Web.L'optimisation est maintenant obsolète. Si vous êtes débutant avec une solution de blanc, vous aurez besoin pour installer la suite de package nuget:
Vous aurez toujours besoin d'un Système de référence.Web.L'optimisation de votre site web.les fichiers de configuration. Pour plus d'informations, consultez cette rubrique:
Comment ajouter une référence à System.Web.Optimisation pour MVC-3-converti à 4 app
Comme beaucoup l'ont souligné,, redémarrage de VS pourrait être nécessaire après les étapes ci-dessus pour faire ce travail.
Install-Package Microsoft.AspNet.Web.Optimization
à partir d'un vide ASP.NET MVC4 modèle car il n'est pas inclus par défaut.@Styles
et@Scripts
sont 2 nouvelles aides fournies parSystem.Web.Optimization
de la bibliothèque. Comme son nom l'indique, ils bundle et minifier les fichiers CSS et JavaScript ou de ressources, respectivement.Essayez d'inclure l'espace de noms
System.Web.Optimization
soit par@using
directive ou par l'intermédiaire deweb.config
http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinificationMise à JOUR
Microsoft a déplacé le groupage/minification à un paquet séparé appelé
Microsoft.AspNet.Web.Optimization
. Vous pouvez télécharger l'assemblée de nuget.Ce post sera utile pour vous.
System.Web.Optimization
espace de noms n'est PAS obsolète, leSystem.Web.Optimization.dll
est.Il y avait un petit pas en manque de ce qui précède, que j'ai trouvé sur un autre post. Après l'ajout de
à votre
~/Views/web.config
espaces de noms, fermez et ré-ouvrez Visual Studio. C'est ce que j'avais à faire pour obtenir ce travail.Je suis en utilisant les zones, et venez de venir à l'encontre de ce problème, j'ai juste copié les espaces de noms de la racine web.config pour les domaines le web. config et il fonctionne maintenant!!
J'ai eu le même problème et j'ai utilisé WinMerge pour m'aider à suivre ce vers le bas. Mais comme je l'ai fait des recherches plus, j'ai trouvé que Rick a le parfait post de blog pour elle.
Résumé:
<add namespace="System.Web.Optimization"/>
à la fois sur internet.les fichiers de configurationInstall-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
J'ai eu le même problème:
Le Système.Web.L'optimisation de la version que j'utilisais était dépassée pour MVC4 RC.
J'ai mis à jour les paquets en utilisant le gestionnaire de paquets dans VS 2010.
Dans ce MSDN blog, M. Andy parle de la façon de mettre à jour votre MVC 4 Bêta projet MVC 4 RC. La mise à jour de mon colis reçu les Scripts (en particulier l'optimisation web) à résoudre pour moi:
Pour installer la dernière version du Système.Web.Optimisation de package, utilisez le Gestionnaire de Package de la Console (Outils -> Gestionnaire de paquets de Bibliothèque -> Gestionnaire de paquets de la Console) et exécutez la commande ci-dessous:
Utiliser le Système.Web.L'optimisation de fichiers inclus dans le paquet dans vos références.
De mettre à jour d'autres paquets:
Menu outils -> Gestionnaire de paquets de Bibliothèque -> Gérer les Packages NuGet pour la Solution.
Créer un nouveau MVC 4 RC internet application et l'exécuter. Accédez à de Connexion qui utilise le même code
Ce qui permet la Connexion.cshtml de travail est le point de Vue\Web.fichier de config (pas la racine d'application version) contient
Pourquoi votre Create view ne fonctionne pas et que la Connexion est?
Système D'Importation.Web.L'optimisation sur le dessus de votre rasoir comme suit:
Je suis tombé sur ce problème, mais lors de l'exécution de la commande:
J'ai reçu le message énigmatique (gotta love, un excellent jeu de mots avant la première tasse de café):
Je suis en cours d'exécution ce sur Windows XP SP3 (pas par choix) et ce que j'ai trouvé était que je devais suivre les instructions affichées par l'utilisateur artsnob sur le ASP.NET Forum
Une fois que j'ai couru ce que je ne puis exécutez la ligne de commande pour mettre à jour le site Web.Optimisation.
Espère que cela sauve quelqu'un creusement.
Il suffit d'écrire
J'ai mis à jour de la Bêta de RC et face 'Scripts' n'existe pas de problème. Surfé sur le web et la solution finale, est ce que N40JPJ dit plus un autre workaroudn:
Copiez le texte suivant dans la Vue\Web.config :
et le suivant à l'intérieur de Vue\Shared_Layout.cshtml
Espère que cela aide.
if (IsSectionDefined())
, sauf si vous fournissez unelse
clause. Le fait que vous ditesrequired: false
permet déjà de cet article, de ne pas être définis, et dans ce cas, la section sera omis. C'est donc inutile de code supplémentaire.bonne chance...
Apparemment, vous avez créé un "Vide" type de projet sans 'Scripts' dossier.
Mon avis
-créer une "Base" type de projet avec un 'Scripts' dossier.
À l'égard de tous les développeurs.
juste supprimer/masquer le code de la créer & Modifier le rasoir vue de votre contrôleur.
Une de plus pour le pot - passé du temps à essayer de travailler sur le même problème, même si il a été défini dans le web.config pour la racine et la racine de Vues. S'avère que j'avais tort de l'ajouter à la
<system.web><pages><namespaces>
, et pas<system.web**.webPages.razor**><pages><namespaces>
élément.Vraiment facile de rater ça!
Quand je rentre sur une page que les nantis de ce code:
Cette erreur se produit: Erreur. Une erreur s'est produite lors du traitement de votre demande.
Et cette exception sont enregistrés sur mes logs:
J'ai essayé toutes les astuces sur cette page, et aucun d'entre eux résolu pour moi. Donc, j'ai regardé sur mon dossier Packages et remarqué que j'ai deux versions pour System.Web.Optmization.dll:
(v1.0.0.0 - 304KB)
Mon projet faisait référence à l'ancienne version bêta. J'ai seulement changé la référence à la version la plus récente (69KB) et tout a bien fonctionné.
Je pense que ça pourrait aider quelqu'un.
Qui a une solution évidente. J'ai eu le même problème plus tard. Pas liées à des Références d'Assembly ou ... .Il va se produire Dans la hiérarchie d'appel de la MVC vues Partielles, lorsque vous avez compliqué structures de page. Afin de l'appelant/le rendu de chaque partie séparément sur chaque page (peut-être une page maître ou partielle) fera en sorte de ne pas voir les éléments requis de la page comme le soufflet code :
Que, tout simplement, les forces de la page pour trouver et rendre section et en cas d'échec vous montre un message d'erreur comme vous.
Donc je vous suggère de suivre la trace des pages (comme le programme trace) de maître à tous ses partiels à Détecter les Dépendances. Peut-être que c'est un terrible travail, mais pas d'autres choix disponibles ici.
Pas que, selon mon expérience, certains conditionnelle situations dans la programmation provoque pas de vous montrer le droit a l'erreur à l'origine du problème.
J'ai eu ce problème une fois, j'ai ajouté un Domaine à un projet qui n'en avait pas.
Pour se débarrasser d'elle juste copié le web.config à l'intérieur de la racine des Vues sur le dossier pour le dossier Vues de la région, et il a commencé à travailler.
- Je résoudre ce problème en MvcMusicStore par ajouter cette partie de code dans _Layout.cshtml
et de supprimer ce code à partir de l'Édition.cshtml
Exécuter le programme inchallah sera de travailler avec vous.
Pour moi, cela a résolu le problème, dans le gestionnaire de package NuGet console d'écriture suivantes:
Quand j'ai commencé à utiliser MVC4 récemment, j'ai affronté le problème ci-dessus, tandis que la création d'un projet avec les modèles vide.
Étapes pour résoudre le problème.
TOOLS
-->Library Package Manager
-->Packager Manager Console
Collez la commande ci-dessous et appuyez sur entrée
Install-Package Microsoft.AspNet.Web.Optimization
Remarque: attendez que le succès de l'installation.
ajouter
<namespace="System.Web.Optimization" />
Le Paquet mentionné dans l'étape 1 s'ajouter quelques bibliothèques système dans la solution des références comme Système.Web.L'optimisation n'est pas une référence par défaut pour les modèles vide dans MVC4.
J'espère que cette aide.
Merci
J'ai eu une erreur similaire lors de la mise à niveau d'un projet de MVC3 à MVC4.
Dans mon cas, j'ai eu dépassées les numéros de version dans plusieurs de mes Web.Les Configs.
Ex:
Être sûr de passer en revue le Web.Les Configs dans chacun de vos points de Vue des répertoires.
Vous pouvez en lire plus à propos de Mise à niveau d'une ASP.NET MVC 3 du Projet de ASP.NET MVC 4.
Si vous avez ajouté à votre site web.config et il montre encore de message, vous devez fermer votre projet et de le rouvrir, maintenant il va exister et @Styles.Render("") et @Scripts.Render() fonctionne correctement.
Essayez ceci: