Ich beginne wieder mit der Entwicklung in ASP.NET und bin in Visual Studio auf einen kleinen Fehler gestoßen. Meine .cshtml-Dateien zeigen Fehler bei der Verwendung einiger Rasiermesserfunktionen. Zum Beispiel "Der Name 'ViewBag' existiert im aktuellen Kontext nicht". Hier ist ein Bild:
Ich benutze ein Demo-Projekt. Sie finden das Projekt hier: https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
Ich habe mehrere andere Threads durchgesehen und die meisten schlagen vor, die Datei (en) von web.config zu aktualisieren. Diese 2 Konfigurationsdateien sind bereits vorhanden und da es sich um eine ziemlich beliebte Demo handelt, gehe ich davon aus, dass sie alle erforderlichen Konfigurationen enthält. Ich habe diese Konfigurationsdateien natürlich durchgesehen und sie enthalten tatsächlich die vorgeschlagenen Lösungen.
Andere Details:
- Ich habe Clean & Rebuild bereits für die Lösung verwendet, aber das hat nichts geändert.
- Wenn ich ein komplett neues MVC-Projekt erstelle, funktioniert es
- Mein Freund hat das gleiche Problem und wir verwenden beide VS 2015 und Windows 10
- Ich kann die Anwendung immer noch ausführen und sie funktioniert.
Danke im Voraus.
quelle
Antworten:
Ich hatte dieses Problem trotz der richtigen Konfiguration.
Es stellte sich heraus, dass einige fehlerhafte Dateien im Komponenten-Cache vorhanden waren, sodass die Razor-Ansichten ViewBag, Model und HtmlHelpers nicht erkennen konnten . Das Löschen dieser Dateien löste das Problem (gute Versionen dieser Dateien wurden beim nächsten Öffnen von Visual Studio erstellt).
Die Dateien befinden sich hier:
Löschen Sie alle vier Dateien:
Ich habe später das gleiche Problem auf mehreren anderen Entwicklercomputern gesehen und dieses Update löst es schnell.
quelle
Aktualisieren Sie die Versionsnummern in den Einstellungen der
web.config
Datei im Ordner Ansichten.Wenn Sie die MVC-Version über Nuget aktualisiert haben, sollte dies sein:
Möglicherweise müssen auch andere Abhängigkeitsversionen aktualisiert werden. Kompilierungs- und Namespace-Probleme in Views for MVC-Hilfsprogrammen und -Objekten hängen normalerweise mit fehlerhaften
web.config
Dateien in den View-Ordnern zusammen.quelle
4.0.0.0
. Ich konnte sie anhand der Eigenschaften sehen. Was sollte die Lösung in meinem Fall sein?*.cshtml
und neu zu*.vbhtml
erstellen. VS 2019 16.1.2Suchen Sie in den App-Einstellungen nach "Webseiten: Version" und aktualisieren Sie sie auf Version 3.0.0.0. Meine web.config hatte
und ich habe es aktualisiert
quelle
Temporary ASP.NET Files
) hat nicht geholfen, aber diese Antwort hat geholfen .Ich habe versehentlich
web.config
aus demViews
Ordner entfernt und dachte, dass es unnötig war. Als ich es zurücklegte, fing es an zu funktionieren.quelle
Alles unter der Sonne, stellt sich heraus , nachdem er versucht etwas geändert hatte meine
System.Web.WebPages.Razor
<sectionGroup>
in/Views/Web.Config
der richtigen CamelcaseSystem.Web.WebPages.Razor
zu einem All-Kleinsystem.web.webpages.razor
die letztlich mein Tod war.In der Hoffnung, dass dies einer anderen armen Seele bei diesem Problem helfen kann ...
Als Referenz ist dies der richtige Eintrag (für mein Szenario)
quelle
Manchmal reicht es nicht aus, die Versionsnummern in den Einstellungen der web.config zu ändern. Dieses Problem tritt auf, weil Visual Studio 2015 nicht über mvc4-Tools verfügt.
Die Lösung besteht darin, Ihr Projekt auf MVC 5 zu aktualisieren. Damit ist das Problem vollständig gelöst. Auf dieser Seite erhalten Sie Hilfe. Es erklärt es klar.
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
Übrigens hat das Visual Studio-Team erklärt, dass es Visual Studio 2015 mit dem ersten Update mvc4-Unterstützung hinzufügen wird.
quelle
Ich war mehrmals mit diesem Problem konfrontiert und stellte schließlich fest, dass es passiert ist, weil der Ordner mit den Ansichten eine eigene Webkonfiguration enthalten sollte
quelle
spät zum Spiel, aber keine dieser Lösungen hat bei mir funktioniert.
Ich habe ein Upgrade auf VS 2017 durchgeführt und die Site hat funktioniert, aber der Visual Studio-Compiler hat die meisten CSHTml-Dateien beschädigt
TLDR;
mysolution.sln hatte die falsche Version
Sie möchten also eine neue Lösung mit neuerem VS erstellen und diese mit Ihrer vergleichen und Versionsinformationen kopieren.
vollständige Upgrade-Schritte:
quelle
Ich habe viel über einen Arbeitstag damit verschwendet. Ich habe alles in diesem (und anderen) Beiträgen versucht, ohne Erfolg. Schließlich stellte ich fest, dass ich das Projekt auf eine andere Weise öffnen musste. Ich habe gerade eine vorhandene Website auf Visual Studio 2015, MVC5, .NET Framework 4.5.2 aktualisiert und verwende Windows 10, vermute jedoch, dass die Antwort für andere Versionen jeder Softwareanwendung dieselbe gewesen wäre.
Dies ist also die Menüoption, die ich zum Öffnen einer Website ausgewählt habe:
Stattdessen habe ich die csproj-Datei geöffnet, die das Projekt über diese Menüoption definiert:
Ich hatte dann die Option "saubere Lösung", auf die sich viele andere Leute beziehen:
Ich brauchte das jedoch nicht einmal - alles hat einfach funktioniert! Nun, ich bin sowieso zu den nächsten Problemen gekommen ...
quelle
Ich hatte den Controller von hinzugefügt
entsprechender Code erstellt:
Meine Fehler wurden durch Ändern von Schritt 1 wie folgt geändert:
entsprechender Code erstellt:
Das Problem war: Ich hatte meine Klasse nicht von Controller geerbt
Andere Meldungen in meinem Fehler enthalten - alle von diesem Problem waren:
Hoffe, diese Änderung hilft denen, die in ihren ersten Schritten nicht aufgepasst haben.
quelle
Nachdem ich mindestens 90% aller Lösungen / Tricks dieses Themas (und anderer) ausprobiert habe, habe ich es endlich gelöst !! Spoiler-Alarm, es gibt keine Spur von Logik ist die folgende sogenannte "Lösung": Das Ausführen der Lösung mit allen geschlossenen Registerkarten hat endlich funktioniert, als mir nichts anderes erspart hätte: "ViewBag & Co existiert im aktuellen Kontext nicht" ... Du wurdest gewarnt, keine verdammte Logik!
Hoffe es wird jemandem eines Tages helfen ^^
quelle
In meinem Fall trat dieses Problem nur für ein Projekt auf meinem PC auf. Mein Projekt hat in VS2012 gut funktioniert, aber als es in VS2017 geöffnet wurde, hatte es dieses Problem.
Das Hauptproblem für mich hier war der Cache. Mein Projekt zeigte auf die älteren zwischengespeicherten DLL-Versionen für Razor und MVC und fand keine Funktionen, die in neueren Versionen wie ViewBag hinzugefügt wurden. ViewBag wurde in Razor Version 3 hinzugefügt, aber da ich Razor Version 2 zwischengespeichert hatte, konnte es ViewBag nicht finden (aber es konnte andere Dinge finden, die in Version 2 vorhanden waren). Das einfache Löschen des Cache wie in der akzeptierten Antwort hat mein Problem jedoch nicht behoben. Wir mussten die Konfigurationsdateien so ändern, dass für Razor "Version 3 statt 2 verwenden" und für MVC "Version 5 statt 4 verwenden" angezeigt wurde. Anschließend wurde VS geschlossen, der Cache entfernt, das Projekt geöffnet und neu erstellt. Dann wurden die Dinge repariert. Unten finden Sie detailliertere Anweisungen.
Hier ist die Reihenfolge der Änderungen, die mir geholfen haben, mein Problem zu beheben:
Hier sind diese Zeilen in meinem Fall:
(Anmerkungen: 1) Ihre Versionen können unterschiedlich sein. Ich sage nur, was in meinem Fall zu tun ist. 2) Ich habe der Kürze halber einige Dinge mit "..." weggelassen. 3) Auch wenn Sie eine MVC-Version wie 5.3.2.0 haben Sie sollten weiterhin 5.0.0.0 eingeben, genau wie bei Razor - geben Sie alle Nullen in 3.0.0.0 ein.
Ändern
webPages:version
Sie in der Hauptkonfigurationsdatei (die auf der obersten Ebene) von 2.0.0.0 auf 3.0.0.0.Diese Änderung hatte wahrscheinlich keine Auswirkungen auf die Lösung, aber ich werde sie trotzdem erwähnen.
<namespaces>
Stellen Sie sicher, dass der Ordnerabschnitt "Ansichten" genau den gleichen Inhalt hat wie die .conifg-Hauptdatei im Stammverzeichnis des Projekts.%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
(oder wie auch immer Ihr korrekter Pfad lautet), wie es in der (derzeit) akzeptierten Antwort von Fenton vorgeschlagen wird. Löschen Sie auch die.scan
Datei, auch wenn sie in dieser Antwort nicht erwähnt wird. Wenn Sie fertig sind, öffnen Sie VS, bereinigen Sie Ihr Projekt und erstellen Sie es neu. Dinge sollten jetzt funktionieren. Es hat bei mir funktioniert.quelle
Das Aus- und Wiedereinschalten hat bei mir funktioniert. Sie können versuchen, Visual Studio neu zu starten.
quelle
Ich konnte das Problem beheben, indem ich oben auf meiner .cshtml-Seite Folgendes hinzufügte
Nach dem Neukompilieren konnte ich diese Zeile löschen und der Fehler war verschwunden.
quelle
Ich hatte ein ähnliches Problem mit einer meiner Ansichten. In meinem Fall habe ich gerade die Lösung aufgeräumt und versucht , sie und ihre Funktionen neu zu erstellen.
quelle
Der folgende Link kann Ihnen helfen.
Es wird Ihnen zeigen, was das Problem sein könnte
es löst mein Problem. Irgendwie hatte ich meine web.config-Datei aus dem Ansichtsordner gelöscht.
quelle
Ich stand vor dem gleichen Problem. Ich habe die Clean, Build and Rebuild-Lösung ausprobiert, aber bei mir nicht funktioniert.
Also habe ich endlich folgendes gemacht:
Hoffe es funktioniert auch für euch.
quelle
Nach dem Upgrade einer Anwendung meines Clients von ASP MVC 4 auf ASP MVC 5 hatten wir Designerfehler in Bezug auf HTML-Helfer und ViewBag auf cshtml-Seiten.
Um diese Probleme zu beheben, gehen Sie wie folgt vor: Installieren der Asp.NET Web Helpers Library von Nuget Öffnen Sie die Web.config des Projekts und aktualisieren Sie die Bindungen, wenn sie beispielsweise bei der Installation der Nuget-Pakete nicht aktualisiert wurden
Suchen Sie in den Einstellungen nach „Webseiten: Version“ und aktualisieren Sie sie auf Version 3.0.0.0. Meine web.config hatte
und ich habe es aktualisiert
Starten Sie Visual Studio neu und erstellen Sie es neu. Möglicherweise müssen Sie den Ordner bin für Ihr Projekt löschen
Besuchen Sie dies: https://lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
quelle
Nachdem ich alles andere ausprobiert und mich ein bisschen frustriert gefühlt hatte, aktualisierte ich das .NET Framework in meiner MVC5-App von 4.5 auf 4.5.2. Irgendwie hat es mein Problem behoben. Ich hoffe es hilft.
quelle
Ich habe das Ersetzen in web.config gelöst
mit
quelle