Ich bin gerade dabei, ein Upgrade auf MVC4 durchzuführen. Ich habe die Anweisungen unter http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 befolgt, aber in meinen Razor-Ansichten und -Layouts habe ich Fehler wie
- 'System.Web.WebPages.Html.HtmlHelper' enthält keine Definition für 'BeginRouteForm' und es konnte keine Erweiterungsmethode 'BeginRouteForm' gefunden werden, die ein erstes Argument vom Typ 'System.Web.WebPages.Html.HtmlHelper' akzeptiert Fehlt eine using-Direktive oder eine Assembly-Referenz?)
Ich habe auch Fehler wie:
- "Der Name 'Viewbag' existiert im aktuellen Kontext nicht
Wenn ich mit der Maus über @Html fahre, kann ich sehen, dass es vom Typ System.Web.WebPages.Html.HtmlHelper ist, nicht System.Web.Mvc.HtmlHelper
Ich bin mir nicht sicher, welche anderen Informationen relevant sind, aber hier bin ich:
- Ich habe noch keine Klassenbibliotheken usw. in der SLN auf .net 4.5 aktualisiert.
- Das Projekt wurde in VS2010 erstellt, aber ich führe die Migration in VS2012 durch
- Das Projekt wird geöffnet und mit OK2012, .Net 4.0, MVC 3 in Ordnung ausgeführt
Alle Hinweise geschätzt.
Bearbeiten: Alle Referenzen und Dateien in web.config wurden aktualisiert auf:
- System.Web.Mvc, Version = 4.0.0.0
- System.Web.WebPages, Version = 2.0.0.0
- System.Web.Helpers, Version = 2.0.0.0
- System.Web.WebPages.Razor, Version = 2.0.0.0
Bearbeiten (2): In meiner /views/web.config (oder /views/shared/web.config, wenn ich die unten stehende @ Pauls-Lösung versuche) im Element habe ich meinen eigenen Basistyp, der von System.Web erbt. Mvc.WebViewPage, die Referenzen in der enthaltenen Bibliothek wurden auf MVC4 aktualisiert und gehen zur Definition, um zur MVC4-DLL zu gelangen.
Hat sich in diesem Bereich an der neuen Version etwas geändert? In den Versionshinweisen konnte ich nichts Relevantes sehen.