Razor Views sehen System.Web.Mvc.HtmlHelper nicht
Ich bin in den Prozess der Aktualisierung auf MVC4. Ich habe die Anweisungen befolgt auf http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 aber in meinem Razor-views und layouts habe ich Fehler wie
- "- System.Web.Webseiten.Html-Code.HtmlHelper' enthält keine definition
für 'BeginRouteForm' und keine Erweiterungsmethode 'BeginRouteForm'
die Annahme ein erstes argument vom Typ
'System.Web.Webseiten.Html-Code.HtmlHelper' gefunden werden konnte (fehlt
eine using-Direktive oder ein Assemblyverweis?)
Ich habe auch Fehler wie:
- "Der name" Viewbag " existiert nicht im aktuellen Kontext
Wenn ich den Mauszeiger über @Html kann ich sehen, es ist vom Typ System.Web.Webseiten.Html-Code.HtmlHelper nicht das System.Web.Mvc.HtmlHelper
Nicht wirklich sicher, was passend ist, aber dies ist, wo ich bin:
- Ich noch nicht aktualisiert-Klasse librarys etc.. in der sln an .net 4.5 noch.
- Das Projekt wurde im VS2010, aber ich mache die migration in
VS2012 - Das Projekt öffnet und läuft OK mit VS2012, .Net 4.0, MVC 3
Alle Zeiger geschätzt.
Edit:
Alle Verweise und Dateien im web.config aktualisiert:
- System.Web.Mvc, Version=4.0.0.0
- System.Web.Webseiten, Version=2.0.0.0
- System.Web.Helfer, Version=2.0.0.0
- System.Web.Webseiten.Razor,
Version=2.0.0.0
Edit(2):
In meinem /views/web.config (oder /views/shared/web.config wenn ich versuchen @Paul 's Lösung unten) in das element, ich habe meine eigene base Typ erbt von System.Web.Mvc.WebViewPage , die Verweise in der mit-Bibliothek wurden aktualisiert, um dem MVC4-und "gehe zu definition" führt mich zu dem MVC4-dll.
Hat sich etwas geändert in diesem Bereich auf die neue Version? Ich konnte nicht sehen, alles relevante in den release notes.
InformationsquelleAutor der Frage NikolaiDante | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in dieses Problem mit einer Web - Anwendung- meine
.cshtml
Dateien stecken auf derSystem.Web.WebPages.WebViewPage
Basisklasse, wenn ich Sie brauchte denSystem.Web.Mvc.WebViewPage
.Erste, sicherzustellen, dass Ihre ~/Views/web.config-Datei hat die richtige
pageBaseType
. In meinem Fall, habe ich zuSystem.Web.Mvc.WebViewPage
.Dann, allemeinige Leute gefunden haben, dies ist der Schlüssel, wenn das oben ist schon gut:
.user
- Datei, die Visual Studio erzeugt neben dem Projekt.Für VS2015die
.user
und.sln
Dateien, die verschoben wurden, um die.vs
versteckte Ordner, die erstellt wird, neben der.sln
- Datei. Aber aus den Kommentaren unten, werden die Fehlermeldungen bedeuten für mich, dass die Werkzeuge mit der falschen version von MVC vollständig, und löschen dieses Ordners nicht das Problem zu beheben. Meines Wissens gibt es nicht eine Lösung bekannt ist.InformationsquelleAutor der Antwort Matt DeKrey
Ich hatte das gleiche Problem beim Update auf MVC 5 und es wurde gelöst, indem die Aktualisierung der web.config innerhalb der Ordner Sichten.
Dem host -> factoryType wurde festgelegt, version:4.0.0.0
hoffe, dies hilft jemand.
InformationsquelleAutor der Antwort user3141889
Ich habe versucht, alle Lösungen hier, aber keiner von Ihnen arbeitete für mich. Wieder, meine Website läuft gut, aber ich habe keine intellisense und bekommen rote Wellenlinie unter einem viele Dinge in meinem Blick auf, dass Visual Studio nicht erkennen, einer von Ihnen
Html.BeginForm()
so gut wie alles mit, um mitViewBag
.Arbeite ich mit einem neuen MVC 5 Projekt. Nach Stunden des Vergleichens web.config-Zeilen, ich schließlich fand, was es behoben für mich.
Meine web.config meiner root war Sie die folgende Zeile:
Ich im Vergleich zu einem früheren Projekt nicht mit MVC 5, kopiert und über einen block ich bemerkte, fehlte von den neuen, die war die folgende:
Kopierte ich den oben genannten block über mein neues Projekt-web.config im Stammverzeichnis, ändern Sie die Versionen entsprechend die zahlen für die einzelnen Baugruppen finden sich in meinem Projekt Verweise (rechts-Klick auf die jeweilige Referenz erwähnt und Auswahl von "Eigenschaften", "Version" am unteren Rand des Fenster "Eigenschaften" für die ausgewählte Referenz).
Nach Umsetzung der oben genannten, ich habe jetzt intellisense und erhalten keine unbekannten roten Linien unter Dinge wie
Html.BeginForm
ViewBag.Title
usw.InformationsquelleAutor der Antwort David Gunderson
Ich hatte ein Projekt sauber und installiert oder alles neu installiert und war noch immer viel Intellisense-Fehler, obwohl mein Standort war zu kompilieren und laufen gut. Intellisense schließlich für mich gearbeitet, wenn ich änderte die Versionsnummern in meiner web.config-Datei in den Ordner Sichten. In meinem Fall bin ich die Codierung eines Moduls im Obstgarten, die läuft in einer MVC-Bereich, aber ich denke, das wird helfen, jemand mit der aktuellen Version von MVC. Hier ist mein web.config aus dem Ordner Sichten
InformationsquelleAutor der Antwort user2570487
Müssen Sie kopieren
Views/Web.config
zu/Shared
. Dies wird Ihnen sagen, Rasierklinge, um die Verwendung des MVC-Basis Typ & parser. Lesen Sie hier mehr: http://blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.htmlInformationsquelleAutor der Antwort Paul
War ich den Umgang mit diesem Problem nach dem Upgrade von
Visual Studio 2013
zuVisual Studio 2015
Nach dem Versuch, die meisten der Beratung in diesem und anderen ähnlichen Beiträge SO, ich habe endlich das problem gefunden. Der erste Teil des Updates wurde das update von meinerNuGet
Zeug auf die neueste version (möglicherweise müssen Sie dies tun, inVS13
wenn Sie erleben dieNuget
bug) nach, habe ich mich, so müssen Sie möglicherweise, beheben Sie die Versionen aufgelistet, die in der AnsichtenWeb.config
. Dies beinhaltet:MVC
Versionen und seiner untergeordneten Bibliotheken auf die neue version (erweitern Sie dieReferences
dann mit der rechten Maustaste aufSytem.Web.MVC
dannProperties
um Ihre version)Razor
version.Sah meins so aus:
InformationsquelleAutor der Antwort Serj Sagan
In den Vertragsstaaten Welt ich bin oft mit Maschinen, die mit älteren Bildern. Nachdem alles versucht über ich beschlossen, aktualisieren Sie meine VS 2013 auf die neueste version (Update 4). Nach 90 Minuten und einem Neustart der Referenzen funktioniert ganz gut jetzt! Hoffe, das hilft!
InformationsquelleAutor der Antwort RichieMN
Haben alles versucht, vergeblich, entdeckte ich, dass in meinem Fall es nicht funktioniert, weil ein Falsches Attribut mit dem Wert im Web-Projekt csproj-Datei. Wenn ich ToolsVersion zu 14das passt zu meinem aktuellen IDE-version (d.h. Visual Studio 2015), alles funktionierte wie ein Charme:
InformationsquelleAutor der Antwort Korayem
Für diejenigen von Euch, die leiden mit dieser nach der Migration eines Projekts von VS 2013 VS 2015, ich war in der Lage, dieses Problem zu beheben, durch die Installation der ASP.NET tools-update von https://visualstudiogallery.msdn.microsoft.com/c94a02e9-f2e9-4bad-a952-a63a967e3935/file/77371/6/AspNet5.ENU.RC1_Update1.exe?SRC=VSIDE&UPDATE=TRUE.
InformationsquelleAutor der Antwort chipples
Nur zu erweitern, die auf Matt DeKrey Antwort, nur löschen die csproj.Benutzer-Datei (ohne neu zu erstellen solutions) war in der Lage, das problem zu beheben für mich.
Die einzige Nebenwirkung die ich hatte, war, die ich brauchte, zurücksetzen der Start-Aktion wieder auf die Verwendung einer bestimmten Seite.
InformationsquelleAutor der Antwort harvyk
Hab neulich das gleiche problem und das ist, wie ich es behoben:
Auf Visual Studio mit Ihrem Projekt in Frage öffnen, Gehe zu:
Wird es zu laden, was fehlt in Ihrem Projekt und alle sollten wieder auf die Strecke.
InformationsquelleAutor der Antwort Donald Mkhomole
Update für Visual Studio 2017 Benutzer:
Wenn Sie gerade migriert auf Visual Studio 2017 und Ihr Projekt ist MVC4, stellen Sie sicher, dass Sie gehen zurück in die VS2017 Installer und check das MVC4-option unter dem "ASP.NET und web-Entwicklung" Abschnitt. Es ist eine optionale Komponente und nicht standardmäßig aktiviert.
Dieser mein Problem gelöst
InformationsquelleAutor der Antwort Mike Smith
Gerade begann, mich in das Thema selbst und das ist, was es Aussehen wie in meinem Fall. Wenn Sie die richtigen Werte in Ihrem web-config dann nur ein bug in MVC4.
http://connect.microsoft.com/VisualStudio/feedback/details/727729/viewbag-not-recognized-in-asp-net-mvc-4-project
InformationsquelleAutor der Antwort QueueHammer
Diese Konfiguration fehlt, fügen Sie es, und legen Sie geeignete version von Baugruppen
InformationsquelleAutor der Antwort ALZ
Als eine variation auf ein Thema, ich könnte haben geschworen, nach oben und unten, dass meine Ansichten\Web.config richtig war:
Aber ich in der Tat notwendig, um Referenz
Version=4.0.0.1
nichtVersion=4.0.0.0
weil das Sicherheits-update bekam, schob Sie sich eine Weile zurück.InformationsquelleAutor der Antwort Nicholas Piasecki
Als für mich, es war eine blöde deployment-Fehler: Web-Projekte können mehr als eine Website.config. Es war die Arbeit auf dem Computer des Entwicklers und nicht in der Produktion, aber wir waren nicht bewusst, dass die Bereitstellung-Skript nur packte die
Web.config
- Datei an der Wurzel, und es nicht zu kopierenWeb.config
Datei in derViews
Ordner.InformationsquelleAutor der Antwort knocte
Ich begegnet diesem Problem; keine (oder falsche) intellisense zeigt, wenn man versucht, razor-tags. Meine konkrete Frage war VS2015 beschweren sich, dass die Html.BeginForm war nicht vorhanden, die im aktuellen Kontext.
Habe ich Bereiche einrichten, in meinem MVC-Projekt, und schafften es, verengen die Ursache für meine Fehler auf das web.config-Datei für einen bestimmten Bereich, anstatt im globalen web.config.
Es stellt sich heraus, dass die Ursache für dieses Problem war für mich, dass ich Hinzugefügt eine SQL-connectionString in der web.config für den Bereich, der nicht funktioniert, dieser (ich nehme an) verursacht einen parsing-Fehler, aber das Projekt kompiliert korrekt.
Bewegen Sie den connectionString, um die Globale web.config hat das Problem behoben. Hoffentlich kann dies von nutzen sein für andere.
InformationsquelleAutor der Antwort 0xFF
Meine situation trat erst ein, nachdem ich Sie erstellt eine benutzerdefinierte Klasse namens
BaseViewPage
dass überschrieb dieWebViewPage
Klasse. Ursprünglich habe ich noch folgende auf meiner Main Web.confg-Datei:Und das gleiche auf der Ansicht Ordner web.config-Datei:
Ich habe versucht, viele der anderen Antworten und keiner hat den trick trotzdem erlauben Sie mir, um meine
BaseViewPage
Klasse. Die Art, wie ich es behoben wurde, entfernen Sie diepageBaseType
- Attribut aus dem Main Web.config-Datei nur. Halten Sie es in der Ansicht web.config.InformationsquelleAutor der Antwort Grandizer
Stieß ich auf mehrere Antworten in SO und am Ende erkannte ich, dass mein Fehler war, das hatte ich falsch geschriebenen "Html.TextBoxFor." In meinem Fall, was ich schrieb, war "Html.TextboxFor." Ich habe nicht die Großbuchstaben B in TextBoxFor. Behoben, und voilà. Das Problem ist gelöst. Ich hoffe, das jemand hilft.
InformationsquelleAutor der Antwort Amadeus Sánchez
Benutzte ich den folgenden Artikel auf der MSDN-Website, um dieses Problem zu lösen (in diesem Fall von MVC 4, MVC 5)
https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2
Wichtigsten Auszüge aus dem Artikel sind:
Der Haupt-Webseite.config (Nicht die, die in den Views-Ordner)
In der runtime-block-update-System.Web.Mvc 5.0.0.0 ,System.Web.Helfer 3.0.0.0 und System.Web.Webseiten zu 3.0.0.0
Suchen Sie dann den Abschnitt appsettings und Aktualisierung der Webseiten:Version Wert 3.0.0.0
Ansichten Web.config
Aktualisieren Sie die host-factoryType-block-System.Web.Mvc 5.0.0.0
Dann unter der Seiten-block aktualisieren Sie alle Verweise auf System.Web.Mvc 5.0.0.0
Und schließlich unter der Konfigurations-block-update-System.Web-Referenzen zu 3.0.0.0
InformationsquelleAutor der Antwort Jflip
Recht, ich habe versucht, das Problem zu beheben, für irgendwann. Ich habe alle Lösungen, die in den verschiedenen Stack-Überlauf Themen zu dieser und keiner schien zu funktionieren.
Ich habe gerade das Problem heute morgen. Nachdem Sie gab Feste im web.config für das Projekt und die Aussicht, machen Sie sicher, dass alle die .dll-Versionen sind, zusammenbringen mit dem, was Sie in der Referenzen-Ordner. Sie müssen entladen, die das Projekt Bearbeiten .csproj, und aktualisieren Sie dann alle .- dll-Versionen in der Datei.
Hoffe, das hilft, denn ich habe endlich das Problem gelöst! Nicht mehr rote Wellenlinien.
Dieser wurde auch behoben, das Kontext-Menü Problem, das ich hatte, wo ich war nicht immer die option zum hinzufügen einer controller -, view usw.
InformationsquelleAutor der Antwort Pavan Dhariwal
Für mich war die Lösung, folgende Einstellungen zu ändern:
InformationsquelleAutor der Antwort user5962156