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.
quelle
Antworten:
Ich bin mit einer Webanwendung auf dieses Problem gestoßen - meine
.cshtml
Dateien blieben in derSystem.Web.WebPages.WebViewPage
Basisklasse hängen, als ich die benötigteSystem.Web.Mvc.WebViewPage
.Stellen Sie zunächst sicher, dass Ihre Datei ~ / Views / web.config korrekt ist
pageBaseType
. In meinem Fall habe ich eingestelltSystem.Web.Mvc.WebViewPage
.<configuration> <system.web.webPages.razor> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <!-- ... --> </pages> </system.web.webPages.razor> </configuration>
Dann wichtiger ist , haben einige Leute finden diese Schlüssel ist , wenn die oben bereits gut sind:
.user
Datei, die Visual Studio neben dem Projekt generiert hat.Bei VS2015 wurden die Dateien
.user
und.sln
in den.vs
versteckten Ordner verschoben, der neben der.sln
Datei erstellt wird. Aus den Kommentaren unten geht jedoch hervor, dass das Tool die falsche Version von MVC verwendet und das Löschen dieses Ordners das Problem nicht behebt. Meines Wissens ist keine Lösung bekannt.quelle
'_Page_Views_Home_Index_cshtml' does not contain a definition for 'ViewBag'
im Editor undThe type or namespace name 'AspNet' does not exist in the namespace 'Microsoft'
in der Fehlerliste (CS0234). Ich verwende MVC 5 und alles begann, als ich von VS2013 auf VS2015 aktualisiert habe. Wenn jemand Hilfe hat, wäre er sehr dankbar, da mich das langsam nervt! Grrr!Ich hatte das gleiche Problem beim Aktualisieren auf MVC 5 und es wurde durch Aktualisieren der Datei web.config im Ordner "Ansichten" behoben.
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.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.Optimization"/> <add namespace="System.Web.Routing" /> </namespaces> </pages>
Der Host -> factoryType wurde auf Version: 4.0.0.0 gesetzt. Ich hoffe, dies hilft jedem.
quelle
Ich habe alle Lösungen hier ausprobiert, aber keine davon hat für mich funktioniert. Auch hier läuft meine Website einwandfrei, aber ich habe kein Intellisense und erhalte rote Wellenlinien unter vielen Dingen in meinen Ansichten, die Visual Studio nicht erkennt. Eine davon ist
Html.BeginForm()
, sowie alles, was damit zu tun hatViewBag
.Ich arbeite mit einem neuen MVC 5-Projekt. Nachdem ich stundenlang die Zeilen von web.config verglichen hatte, fand ich endlich heraus, was das Problem für mich behoben hatte.
Meine web.config in meinem Stammverzeichnis hatte die folgende Zeile:
<system.web> <compilation debug="true" targetFramework="4.5" /> <!-- ... --> </system.web>
Ich habe mit einem früheren Projekt verglichen, bei dem MVC 5 nicht verwendet wurde, und über einen Block kopiert, von dem ich festgestellt habe, dass er in dem neuen fehlte.
<system.web> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </assemblies> </compilation> <!-- ... --> </system.web>
Ich habe den obigen Block in die web.config meines neuen Projekts im Stammverzeichnis kopiert und die Versionen so geändert, dass sie mit den Nummern für jede in meinen Projektreferenzen gefundene Baugruppe übereinstimmen (durch Klicken mit der rechten Maustaste auf jede erwähnte Referenz und Auswahl von "Eigenschaften" wird "Version" angegeben am unteren Rand des Eigenschaftenfensters für die ausgewählte Referenz).
Nachdem die obige Umsetzung habe ich jetzt Intellisense und keine unbekannten roten Linien unter Dinge wie bekommen
Html.BeginForm
,ViewBag.Title
etc.quelle
Ich hatte ein sauberes Projekt ausgeführt und alles installiert oder neu installiert und bekam immer noch viele Intellisense-Fehler, obwohl meine Site kompiliert wurde und einwandfrei lief. Intellisense hat endlich für mich funktioniert, als ich die Versionsnummern in meiner Datei web.config im Ordner Ansichten geändert habe. In meinem Fall codiere ich ein Modul in Orchard, das in einem MVC-Bereich ausgeführt wird, aber ich denke, dies wird jedem helfen, der die neueste Version von MVC verwendet. Hier ist meine web.config aus dem Ordner "Ansichten"
<?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="Orchard.Mvc.ViewEngines.Razor.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <add namespace="System.Linq" /> <add namespace="System.Collections.Generic" /> </namespaces> </pages> </system.web.webPages.razor> <system.web> <!-- Enabling request validation in view pages would cause validation to occur after the input has already been processed by the controller. By default MVC performs request validation before a controller processes the input. To change this behavior apply the ValidateInputAttribute to a controller or action. --> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <controls> <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer> </configuration>
quelle
Sie müssen kopieren
Views/Web.config
zu/Shared
. Dadurch wird Razor angewiesen, den MVC-Basistyp & Parser zu verwenden. Weitere Informationen finden Sie hier: http://blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.htmlquelle
Ich habe mich nach dem Upgrade von
Visual Studio 2013
auf mit diesem Problem befasst. Nachdem ich dieVisual Studio 2015
meisten Ratschläge in diesem und anderen ähnlichen SO-Posts ausprobiert hatte, fand ich schließlich das Problem. Der erste Teil des Fixes bestand darin, alle meineNuGet
Inhalte auf die neueste Version zu aktualisieren (möglicherweise müssen Sie dies tun,VS13
wenn derNuget
Fehler auftritt), nachdem ich die in der Liste aufgeführten Versionen nach Bedarf reparieren musste AnsichtenWeb.config
. Das beinhaltet:MVC
Versionen und ihre untergeordneten Bibliotheken auf die neue Version (erweitern Sie denReferences
Mausklick und klicken SieSytem.Web.MVC
dannProperties
auf, um Ihre Version zu erhalten).Razor
Version.Meins sah so aus:
<configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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.Optimization"/> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor> <appSettings> <add key="webpages:Enabled" value="false" /> </appSettings> <system.web> <httpHandlers> <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> </httpHandlers> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer> </configuration>
quelle
Update für Visual Studio 2017-Benutzer:
Wenn Sie gerade auf Visual Studio 2017 migriert haben und Ihr Projekt MVC4 ist, stellen Sie sicher, dass Sie zum VS2017-Installationsprogramm zurückkehren und die Option MVC4 im Abschnitt "ASP.NET und Webentwicklung" aktivieren. Es ist eine optionale Komponente und nicht standardmäßig aktiviert.
Dies löste mein Problem
quelle
In der Vertragswelt verwende ich häufig Maschinen, die ältere Bilder verwenden. Nachdem ich alles oben Genannte ausprobiert hatte, entschied ich mich, mein VS 2013 auf die neueste Version (Update 4) zu aktualisieren. Nach 90 Minuten und einem Neustart funktionieren die Referenzen jetzt einwandfrei! Hoffe das hilft!
quelle
Nachdem ich alles vergeblich ausprobiert hatte, stellte ich fest, dass es in meinem Fall aufgrund eines falschen Attributwerts in der csproj-Datei von Web Project nicht funktionierte. Wenn ich ToolsVersion auf 14 ändere , was meiner aktuellen IDE-Version (dh Visual Studio 2015) entspricht, hat alles wie ein Zauber funktioniert:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition= .....
quelle
Für diejenigen unter Ihnen, die nach der Migration eines Projekts von VS 2013 auf VS 2015 darunter leiden, konnte ich dieses Problem beheben, indem ich das ASP.NET-Tool-Update von https://visualstudiogallery.msdn.microsoft.com/c94a02e9-f2e9- installierte 4bad-a952-a63a967e3935 / file / 77371/6 / AspNet5.ENU.RC1_Update1.exe? SRC = VSIDE & UPDATE = TRUE .
quelle
Nur um die Antwort von Matt DeKrey zu erweitern, konnte das Problem durch Löschen der Datei csproj.user (ohne dass Lösungen neu erstellt werden müssen) behoben werden.
Der einzige Nebeneffekt, den ich hatte, war, dass ich die Startaktion auf die Verwendung einer bestimmten Seite zurücksetzen musste.
quelle
Ich habe den folgenden Artikel über MSDN verwendet, um dieses Problem zu lösen (in diesem Fall von MVC 4 bis 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
Hauptauszüge aus dem Artikel sind:
Main Web.config (Nicht die im Ordner "Ansichten")
Aktualisieren Sie im Laufzeitblock System.Web.Mvc auf 5.0.0.0, System.Web.Helpers auf 3.0.0.0 und System.Web.WebPages auf 3.0.0.0
<dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly>
Suchen Sie dann nach dem Block für die Einstellungen und aktualisieren Sie die Webseiten: Versionswert auf 3.0.0.0
<appSettings> <add key="webpages:Version" value="3.0.0.0" /> </appSettings>
Ansichten Web.config
Aktualisieren Sie den Host factoryType-Block auf System.Web.Mvc auf 5.0.0.0
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> </namespaces> </pages> </system.web.webPages.razor>
Aktualisieren Sie dann unter dem Seitenblock alle Verweise auf System.Web.Mvc auf 5.0.0.0
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages>
Und schließlich unter dem Konfigurationsblock aktualisieren Sie die System.Web-Verweise auf 3.0.0.0
<configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections>
quelle
Vor kurzem habe ich das gleiche Problem und so habe ich es behoben: In Visual Studio mit geöffnetem Projekt, Gehe zu:
Es wird geladen, was in Ihrem Projekt fehlt, und alle sollten wieder auf dem richtigen Weg sein.
quelle
Ich habe gerade angefangen, mich selbst mit dem Thema zu befassen, und so sieht es in meinem Fall aus. Wenn Sie die richtigen Werte in Ihrer Webkonfiguration haben, ist dies nur ein Fehler in MVC4. http://connect.microsoft.com/VisualStudio/feedback/details/727729/viewbag-not-recognized-in-asp-net-mvc-4-project
quelle
*<system.web> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </assemblies> </compilation>*
Diese Konfiguration fehlt, fügen Sie sie hinzu und legen Sie die entsprechende Version der Assemblys fest
quelle
Als Variation eines Themas hätte ich schwören können, dass meine Views \ Web.config korrekt war:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Aber ich musste tatsächlich darauf verweisen
Version=4.0.0.1
, nichtVersion=4.0.0.0
wegen des Sicherheitsupdates, das vor einiger Zeit veröffentlicht wurde.quelle
Für mich war es ein dummer Bereitstellungsfehler: Webprojekte können mehr als eine web.config haben. Es funktionierte auf dem Computer des Entwicklers und nicht in der Produktion, aber wir haben nicht bemerkt, dass das Bereitstellungsskript nur die
Web.config
Datei im Stammverzeichnis abgerufen und dieWeb.config
Datei nicht in denViews
Ordner kopiert hat .quelle
Ich bin auch auf dieses spezielle Problem gestoßen. Keine (oder falsche) Intellisense-Anzeige, wenn versucht wird, Rasiermesser-Tags zu verwenden. Mein spezielles Problem war VS2015, der sich darüber beschwerte, dass Html.BeginForm im aktuellen Kontext nicht vorhanden war.
In meinem MVC-Projekt sind Bereiche eingerichtet, und es ist mir gelungen, die Fehlerursache auf die Datei web.config für einen bestimmten Bereich und nicht auf die globale Datei web.config zu beschränken.
Es stellte sich heraus, dass die Ursache für dieses Problem für mich darin bestand, dass ich der web.config einen SQL connectionString für den Bereich hinzugefügt hatte, der nicht funktionierte. Dies (ich nehme an) verursachte einen Analysefehler, das Projekt wurde jedoch korrekt kompiliert .
Durch das Verschieben des connectionString in die globale web.config wurde das Problem behoben. Hoffentlich kann dies für andere von Nutzen sein.
quelle
Meine Situation trat erst auf, nachdem ich eine benutzerdefinierte Klasse namens erstellt hatte
BaseViewPage
, die dieWebViewPage
Klasse überschrieb . Ich habe zunächst die folgenden meine Haupt Web.confg Datei:<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">
Und dies auch für die Ansicht Ordner Datei web.config:
<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">
Ich habe viele der anderen Antworten ausprobiert und keine hat den Trick gemacht, während ich trotzdem meine
BaseViewPage
Klasse behalten konnte . So wie ich es fixiert war , das entfernenpageBaseType
Attribut aus der Haupt Datei Web.config nur. Behalten Sie es in der Ansicht web.config.quelle
In SO stieß ich auf mehrere Antworten und am Ende stellte ich fest, dass mein Fehler darin bestand, dass ich "Html.TextBoxFor" falsch geschrieben hatte. In meinem Fall schrieb ich "Html.TextboxFor". Ich habe das B in TextBoxFor nicht in Großbuchstaben geschrieben. Behoben das und voilà. Problem gelöst. Ich hoffe das hilft jemandem.
quelle
Richtig, ich habe versucht, dieses Problem für einige Zeit zu beheben. Ich habe alle Lösungen in den verschiedenen Stack Overflow-Themen dazu verwendet und keine schien zu funktionieren.
Ich habe das Problem heute Morgen behoben. Nachdem Sie die Datei web.config sowohl für das Projekt als auch für die Ansichten korrigiert haben, stellen Sie sicher, dass alle DLL-Versionen mit denen im Referenzordner übereinstimmen. Sie müssen das Projekt entladen, die .csproj-Datei bearbeiten und anschließend alle DLL-Versionen in dieser Datei aktualisieren.
Hoffe das hilft, da ich dieses Problem endlich behoben habe! Keine roten, schnörkellosen Linien mehr.
Dies hat auch das Problem mit dem Kontextmenü behoben, bei dem ich nicht die Möglichkeit hatte, einen Controller, eine Ansicht usw. hinzuzufügen.
quelle
Für mich bestand die Lösung darin, Folgendes zu ändern:
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages>
quelle