Je recommence à développer dans ASP.NET et j'ai rencontré une petite erreur dans Visual Studio. Mes fichiers .cshtml affichent des erreurs lors de l'utilisation de quelques fonctions de rasoir. Par exemple "Le nom 'ViewBag' n'existe pas dans le contexte actuel". Voici une image:
J'utilise un projet de démonstration. Vous pouvez trouver le projet ici: https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
J'ai parcouru plusieurs autres fils et la plupart suggèrent de mettre à jour le ou les fichiers web.config. Ces 2 fichiers de configuration sont déjà présents et comme c'est une démo assez populaire, je suppose qu'elle contient toute la configuration requise. J'ai bien sûr parcouru ces fichiers de configuration et ils incluent en effet les solutions suggérées.
Autres détails:
- J'ai déjà utilisé clean & rebuild sur la solution mais cela n'a rien changé.
- Lorsque je crée un tout nouveau projet MVC, cela fonctionne
- Mon ami a le même problème et nous utilisons tous les deux VS 2015 et Windows 10
- Je peux toujours exécuter l'application et cela fonctionne.
Merci d'avance.
la source
Réponses:
J'ai eu ce problème malgré la configuration correcte.
Il s'est avéré qu'il s'agissait de fichiers défectueux dans le cache de composants, empêchant les vues Razor de reconnaître les ViewBag, Model et HtmlHelpers . La suppression de ces fichiers a résolu le problème (de bonnes versions de ces fichiers ont été créées la prochaine fois que j'ai ouvert Visual Studio).
Les fichiers se trouvent ici:
Supprimez les quatre fichiers:
J'ai par la suite vu le même problème sur plusieurs autres machines de développement et ce correctif le résout rapidement.
la source
Mettez à jour les numéros de version dans les paramètres du
web.config
fichier dans le dossier Vues.Si vous avez mis à jour la version MVC via nuget, devrait être:
D'autres versions de dépendances devront peut-être également être mises à jour. Les problèmes de compilation et d'espace de noms dans Views pour les helpers et objets MVC sont généralement liés à des
web.config
fichiers en désordre dans les dossiers View.la source
4.0.0.0
, je pouvais le voir à partir des propriétés. Quelle devrait être la solution dans mon cas?*.cshtml
et*.vbhtml
fichiers et propre et reconstruire la solution. VS 2019 16.1.2Recherchez "pages Web: Version" dans les paramètres de l'application et mettez-le à jour vers la version 3.0.0.0. Mon web.config avait
et je l'ai mis à jour pour
la source
Temporary ASP.NET Files
) n'a pas aidé, mais cette réponse l'a fait .J'ai accidentellement retiré
web.config
duViews
dossier, pensant que ce n'était pas nécessaire. Quand je l'ai remis, il a commencé à fonctionner.la source
Après avoir essayé tout sous le soleil, il se trouve quelque chose avait modifié mon
System.Web.WebPages.Razor
<sectionGroup>
dans/Views/Web.Config
du CamelCase appropriéSystem.Web.WebPages.Razor
à un tout minusculesystem.web.webpages.razor
qui a finalement été ma mort.En espérant que cela peut aider une autre pauvre âme avec ce problème ...
Pour référence, c'est la bonne entrée (pour mon scénario)
la source
Parfois, il ne suffit pas de modifier les numéros de version dans les paramètres de web.config. Ce problème se produit car Visual Studio 2015 ne dispose pas d'outils mvc4.
La solution consiste à mettre à niveau votre projet vers MVC 5. Cela résout totalement le problème. Vous pouvez obtenir de l'aide sur cette page. Cela l'explique clairement.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
Au fait, l'équipe de Visual Studio a déclaré qu'elle ajouterait la prise en charge de mvc4 à Visual Studio 2015 avec la première mise à jour.
la source
J'ai rencontré ce problème plus de fois et j'ai finalement découvert que cela s'était produit parce que le dossier de vues devrait contenir sa propre configuration Web
la source
tard dans le jeu, mais aucune de ces solutions n'a fonctionné pour moi.
J'ai mis à niveau vers VS 2017 et le site a fonctionné, mais le compilateur Visual Studio a cassé la plupart des fichiers .cshtml
TLDR;
mysolution.sln avait la mauvaise version
vous voulez donc créer une nouvelle solution avec des VS plus récents et la comparer au vôtre et copier les informations de version.
étapes de mise à niveau complètes:
la source
J'ai perdu bien plus d'une journée de travail à ce sujet. J'ai tout essayé dans cet article (et dans d'autres), en vain. Finalement, j'ai trouvé que j'avais besoin d'ouvrir le projet d'une manière différente. Je viens de mettre à niveau un site Web existant vers Visual Studio 2015, MVC5, .NET Framework 4.5.2 et j'utilise Windows 10, mais je suppose que la réponse aurait été la même pour les autres versions de chaque application logicielle.
Voici donc l'option de menu que j'ai choisie pour ouvrir un site Web:
Au lieu de cela, j'ai ouvert le fichier csproj définissant le projet à l'aide de cette option de menu:
J'ai alors eu l'option «solution propre» à laquelle beaucoup d'autres personnes se réfèrent:
Cependant, je n'avais même pas besoin de cela - tout fonctionnait! Eh bien, je suis passé à la prochaine série de problèmes, de toute façon ...
la source
J'avais ajouté le contrôleur par
code correspondant créé:
Mes erreurs ont été modifiées en modifiant l'étape 1 comme suit:
code correspondant créé:
Le problème était: je n'avais pas hérité de ma classe de Controller
D'autres messages dans mon erreur inclus - qui provenaient tous de ce problème:
J'espère que ce changement aidera ceux qui n'ont pas prêté attention dans leurs premières étapes.
la source
Après avoir essayé au moins 90% de chaque solution / astuce de ce sujet (et d'autres), je l'ai enfin résolu !! Alerte spoiler, il n'y a aucune trace de logique, c'est la soi-disant "solution" suivante: Lancer la solution avec tous les onglets fermés a finalement fonctionné, alors que rien d'autre ne m'aurait épargné le "ViewBag & Co n'existe pas dans le contexte actuel" ... Vous avez été prévenu, pas de logique flippante!
J'espère que ça aidera quelqu'un un jour ^^
la source
Dans mon cas, j'ai eu ce problème sur mon PC uniquement pour un projet. Mon projet a bien fonctionné dans VS2012 mais lorsqu'il a été ouvert dans VS2017, il avait ce problème.
Le principal problème pour moi ici était le cache. Mon projet pointait vers les anciennes versions en cache de dll pour Razor et MVC et il ne trouvait pas les fonctionnalités ajoutées dans les versions plus récentes, telles que ViewBag. ViewBag a été ajouté dans la version 3 de Razor, mais comme j'avais la version 2 de Razor en cache, il n'a pas pu trouver ViewBag (mais il pouvait trouver d'autres éléments qui étaient présents dans la version 2). Cependant, le simple fait de vider le cache comme dans la réponse acceptée n'a pas résolu mon problème. Nous avons dû changer les fichiers de configuration pour dire "utiliser la version 3 au lieu de 2" pour Razor et "utiliser la version 5 au lieu de 4" pour MVC, puis fermer VS, supprimer le cache, ouvrir le projet et reconstruire. Puis les choses se sont arrangées. Vous trouverez ci-dessous des instructions plus détaillées.
Voici la séquence des changements qui m'ont aidé à résoudre mon problème:
Voici ces lignes dans mon cas:
(notes: 1) vos versions peuvent être différentes, je dis juste ce qu'il fallait faire dans mon cas 2) J'ai omis des trucs avec "..." par souci de brièveté 3) même si vous avez une version MVC quelque chose comme 5.3.2.0 vous devez toujours saisir 5.0.0.0, même chose avec la version de Razor - saisissez tous les zéros dans 3.0.0.0)
Dans le fichier de configuration principal (celui du niveau supérieur),
webPages:version
passez de 2.0.0.0 à 3.0.0.0.Ce changement n'a probablement pas affecté la solution, mais je le mentionnerai quand même. Assurez-vous que la
<namespaces>
section du dossier «Views» a exactement le même contenu que le fichier principal .conifg à la racine du projet, quelque chose comme:%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
(ou quel que soit votre chemin correct), comme il est suggéré dans la réponse (actuellement) acceptée par Fenton. Supprimez également le.scan
fichier, même s'il n'est pas mentionné dans cette réponse. Une fois que vous avez terminé, ouvrez VS, nettoyez votre projet et reconstruisez-le. Les choses devraient fonctionner maintenant. Cela a fonctionné pour moi.la source
L'activer et le rallumer a fonctionné pour moi. Vous pouvez essayer de redémarrer Visual Studio.
la source
J'ai pu résoudre le problème en ajoutant ce qui suit en haut de ma page .cshtml
Après la recompilation, j'ai pu supprimer cette ligne et l'erreur a disparu.
la source
J'ai rencontré un problème similaire avec l'un de mes points de vue. Dans mon cas, je viens de nettoyer la solution et j'ai essayé de la reconstruire et de ses travaux.
la source
le lien suivant peut vous aider.
Cela vous montrera quel pourrait être le problème
cela résout mon problème. en quelque sorte, j'avais supprimé mon fichier web.config du dossier de vue.
la source
J'ai fait face au même problème. J'ai essayé la solution Clean, Build and Rebuild, mais cela n'a pas fonctionné pour moi.
Alors j'ai enfin fait comme ci-dessous:
J'espère que cela fonctionne pour vous aussi.
la source
Après la mise à niveau d'une des applications de mon client d'ASP MVC 4 vers ASP MVC 5, nous avons eu des erreurs de concepteurs liées aux Helpers Html et ViewBag dans les pages cshtml.
Pour résoudre ces problèmes, assurez-vous de procéder comme suit: Installez la bibliothèque Asp.NET Web Helpers à partir de Nuget Ouvrez le Web.config du projet et mettez à jour les liaisons si elles n'ont pas été mises à jour lors de l'installation des packages Nuget, par exemple
Recherchez «pages Web: Version» dans les paramètres de l'application et mettez-le à jour vers la version 3.0.0.0. Mon web.config avait
et je l'ai mis à jour pour
Redémarrez Visual Studio et reconstruisez. Vous devrez peut-être supprimer le dossier bin de votre projet
Visitez ceci: https://lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
la source
Après avoir tout essayé et me sentir un peu frustré, j'ai mis à niveau le framework .NET sur mon application MVC5 de 4.5 à 4.5.2. D'une manière ou d'une autre, cela a résolu mon problème. J'espère que ça aide.
la source
J'ai résolu le remplacement dans web.config
avec
la source