it-swarm.com.de

Razor Views sehen System.Web.Mvc.HtmlHelper nicht

Ich bin gerade dabei, auf MVC4 umzusteigen. Ich habe die Anweisungen unter http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 befolgt, aber in meinen Ansichten und Layouts habe ich Fehler wie 

  • 'System.Web.WebPages.Html.HtmlHelper' enthält keine Definition .__ für 'BeginRouteForm' und keine Erweiterungsmethode 'BeginRouteForm' , Die ein erstes Argument des Typs 'Akzeptiert. System.Web.WebPages.Html .HtmlHelper 'wurde gefunden (fehlt Eine using-Direktive oder eine Assembly-Referenz?)

Ich habe auch Fehler wie:

  • "Der Name 'Viewbag' ist im aktuellen Kontext nicht vorhanden

Wenn ich über @Html schwebe, kann ich sehen, dass es vom Typ System.Web.WebPages.Html.HtmlHelper ist, nicht System.Web.Mvc.HtmlHelper

Nicht wirklich sicher, welche anderen Informationen relevant sind, aber hier bin ich:

  • Ich habe Klassenbibliotheken usw. in der sln noch nicht auf .net 4.5 aktualisiert.
  • Das Projekt wurde in VS2010 erstellt, aber ich mache die Migration in VS2012 
  • Das Projekt wird mit VS2012, .Net 4.0, MVC 3 geöffnet und ausgeführt

Alle Hinweise haben es zu schätzen gewusst.

Edit: 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

Edit (2): In meiner /views/web.config (oder /views/shared/web.config, wenn ich die Lösung von @Paul unten im Element versuche) habe ich einen eigenen Basistyp Das von System.Web.Mvc.WebViewPage übernommene Verweis auf die übergeordnete Bibliothek wurde auf MVC4 aktualisiert, und zur Definition gelangen Sie zur MVC4-DLL.

Hat sich in diesem Bereich an der neuen Version etwas geändert? Ich konnte nichts relevantes in den Versionshinweisen sehen.

66
NikolaiDante

Dieses Problem ist bei einer Webanwendung aufgetreten. Meine .cshtml-Dateien steckten in der System.Web.WebPages.WebViewPage-Basisklasse, als ich den System.Web.Mvc.WebViewPage benötigte. 

Stellen Sie zunächst sicher, dass Ihre ~/Views/web.config -Datei die richtige pageBaseType hat. In meinem Fall habe ich System.Web.Mvc.WebViewPage eingestellt.

<configuration>
  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <!-- ... -->
    </pages>
  </system.web.webPages.razor>
</configuration>

Dann, wichtig , haben einige Leute festgestellt, dass dies der Schlüssel ist, wenn das oben Genannte bereits gut ist:

  1. Führen Sie eine saubere Lösung für die Lösung aus
  2. Entladen Sie das Projekt mit den Problemen
  3. Löschen Sie die .user-Datei, die Visual Studio neben dem Projekt generiert hat. 
  4. Laden Sie das Projekt erneut mit den Problemen
  5. Bauen Sie die Lösung auf

Für VS2015 wurden die .user- und .sln-Dateien in den versteckten .vs-Ordner verschoben, der neben der .sln-Datei erstellt wird. Aus den Kommentaren unten deuten die Fehlermeldungen jedoch darauf hin, dass das Tool die falsche Version von MVC vollständig verwendet, und das Löschen dieses Ordners behebt das Problem nicht. Meines Wissens gibt es keine bekannte Lösung.

87
Matt DeKrey

Bei der Aktualisierung auf MVC 5 hatte ich dasselbe Problem. Dieses Problem wurde gelöst, indem die Datei web.config im Ordner Views aktualisiert wurde.

<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 die Version 4.0.0.0 gesetzt.

24
user3141889

Ich habe alle Lösungen ausprobiert, aber keine davon hat für mich funktioniert. Wieder läuft meine Website gut, aber ich habe keine Intelligenz und bekomme unter vielen Dingen in meinen Ansichten rote Wellenlinien, die von Visual Studio nicht erkannt werden. Eine davon ist Html.BeginForm() und alles, was mit ViewBag zu tun hat.

Ich arbeite mit einem neuen MVC 5-Projekt. Nach stundenlangem Vergleich der web.config-Zeilen habe ich endlich gefunden, was es für mich behoben hat.

Meine web.config in meinem Stammverzeichnis hatte die folgende Zeile:

<system.web>
  <compilation debug="true" targetFramework="4.5" />

  <!-- ... -->
</system.web>

Ich verglich mich mit einem früheren Projekt, das nicht mit MVC 5 arbeitet, und kopierte einen Block, den mir beim neuen fehlte, und sah Folgendes aus:

<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 Assembly übereinstimmen, die in meinen Projektreferenzen gefunden wird. Klicken Sie dazu mit der rechten Maustaste auf die genannten Referenzen und wählen Sie "Eigenschaften", "Version" am unteren Rand des Eigenschaftenfensters für die ausgewählte Referenz).

Nach der Implementierung des obigen habe ich jetzt Intellisense und bekomme keine unbekannten roten Linien unter Dingen wie Html.BeginForm, ViewBag.Title usw.

8
David Gunderson

Ich hatte ein Projekt sauber ausgeführt, alles installiert oder neu installiert und erhielt immer noch viele Intellisense-Fehler, obwohl meine Website kompiliert wurde und einwandfrei lief. Intellisense funktionierte schließlich für mich, als ich die Versionsnummern in meiner Datei web.config im Ordner Views änderte. In meinem Fall programmiere ich ein Modul in Orchard, das in einem MVC-Bereich ausgeführt wird, aber ich denke, dass dies jedem helfen wird, der die neueste Version von MVC verwendet. Hier ist meine web.config aus dem Views-Ordner

    <?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>
6
user2570487

Sie müssen Views/Web.config in /Shared kopieren. Dadurch wird Razor angewiesen, den MVC-Basistyp und -Parser zu verwenden. Sie können mehr hier lesen: http://blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.html

4
Paul

Nachdem ich ein Upgrade von Visual Studio 2013 auf Visual Studio 2015 durchgeführt hatte, beschäftigte ich mich mit diesem Problem. Nachdem ich die meisten Ratschläge aus diesem und anderen ähnlichen SO - Posts ausprobiert hatte, fand ich schließlich das Problem. Der erste Teil des Fixes bestand darin, alle NuGet-Sachen auf die neueste Version zu aktualisieren (möglicherweise müssen Sie dies in VS13 tun, wenn Sie den Nuget-Fehler feststellen), nachdem ich die Versionen korrigieren musste aufgelistet in Views Web.config. Das beinhaltet: 

  1. Korrigieren Sie MVC-Versionen und ihre untergeordneten Bibliotheken auf die neue Version (erweitern Sie References und klicken Sie dann mit der rechten Maustaste aufSytem.Web.MVC und dann auf Properties, um Ihre Version zu erhalten.) 
  2. Korrigieren Sie die Razor-Version. 

Mein 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>
3
Serj Sagan

Nachdem ich alles vergeblich versucht hatte, stellte ich fest, dass es in meinem Fall wegen eines falschen Attributwerts in der Web Project-Datei csproj nicht funktionierte. Wenn ich ToolsVersion in 14 ändere, was meiner aktuellen IDE -Version (d. H. Visual Studio 2015) entspricht, funktionierte alles wie ein Zauber:

<?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=
  .....
2
Korayem

In der Contracting-Welt verwende ich häufig Maschinen, die ältere Bilder verwenden. Nachdem ich alles getestet 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!

2
RichieMN

Wenn Sie nach der Migration eines Projekts von VS 2013 auf VS 2015 darunter leiden, konnte ich dieses Problem beheben, indem Sie das Update der ASP.NET-Tools von https://visualstudiogallery.msdn.Microsoft.com/c94a02e9- f2e9-4bad-a952-a63a967e3935/file/77371/6/AspNet5.DEU.RC1_Update1.exe? SRC = VSIDE & UPDATE = TRUE .

2
chipples

Update für Visual Studio 2017-Benutzer:

Wenn Sie gerade zu Visual Studio 2017 migriert haben und Ihr Projekt MVC4 ist, stellen Sie sicher, dass Sie sich wieder im VS2017-Installationsprogramm befinden und die Option MVC4 im Abschnitt "ASP.NET und Webentwicklung" aktivieren. Es ist eine optionale Komponente und wird standardmäßig nicht geprüft. 

Das hat mein Problem gelöst

2
Mike Smith

Um die Antwort von Matt DeKrey zu erweitern, konnte durch das Löschen der Datei csproj.user (ohne dass Lösungen neu erstellt werden mussten) das Problem für mich behoben werden.

Der einzige Nebeneffekt, den ich hatte, war, dass ich die Startaktion auf die Verwendung einer bestimmten Seite zurücksetzen musste.

1
harvyk

Ich habe vor kurzem das gleiche Problem und so habe ich es behoben: In Visual Studio mit geöffnetem Projekt, springe:

  1. Tools -> NuGet Package Manager -> NuGet-Pakete für Lösung verwalten.
  2. Wählen Sie im geöffneten Fenster Updates . Klicken Sie dann auf Update All .

Es wird geladen, was in Ihrem Projekt fehlt, und alles sollte wieder auf dem richtigen Weg sein.

1
Donald Mkhomole

Ich habe den folgenden Artikel in 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-und-web-api-project-to-aspnet- mvc-5-and-web-api-2

Hauptauszüge aus dem Artikel sind: 

Main Web.config (nicht der Ordner "Views")

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 "appsettings" 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 verweist System.Web unter dem Konfigurationsblockupdate 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>
1
Jflip

Ich habe gerade angefangen, mich mit dem Thema zu beschäftigen, 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-projekt

0
QueueHammer
*<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 Baugruppen fest

0
ALZ

Meine Situation trat nur auf, nachdem ich eine benutzerdefinierte Klasse namens BaseViewPage erstellt hatte, die die WebViewPage-Klasse überschrieb. Ich habe anfangs Folgendes zu meiner Main Web.confg-Datei hinzugefügt:

<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">

Dasselbe gilt für die Datei web.config der Ordner View:

<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. Wie ich es behoben habe, bestand darin, das pageBaseType-Attribut nur aus der Datei Main Web.config zu entfernen. Behalten Sie es in der View web.config.

0
Grandizer

Ich habe auch dieses spezielle Problem angetroffen; Keine (oder falsche) Intellisense-Anzeige bei Verwendung von Rasierklingen. Mein spezielles Problem war, dass VS2015 klagte, dass Html.BeginForm im aktuellen Kontext nicht vorhanden sei.

Ich habe in meinem MVC-Projekt Bereiche eingerichtet und konnte die Fehlerursache auf die Datei web.config für einen bestimmten Bereich und nicht auf die globale web.config eingrenzen.

Es stellte sich heraus, dass die Ursache dieses Problems für mich darin bestand, dass ich in der web.config einen SQL-ConnectionString für den Bereich hinzugefügt hatte, der nicht funktionierte. Dies (ich gehe davon aus) verursachte einen Parsing-Fehler, das Projekt wurde jedoch korrekt kompiliert .

Durch das Verschieben von connectionString in die globale Datei web.config wurde das Problem behoben. Hoffentlich kann dies für andere von Nutzen sein.

0
0xFF

Richtig, ich habe seit einiger Zeit versucht, dieses Problem zu beheben. Ich habe alle Lösungen in den verschiedenen Stack-Overflow-Themen dazu verwendet und es schien keine zu funktionieren.

Ich habe das Problem gerade heute morgen behoben. Nachdem Sie die Datei web.config für das Projekt und die Ansichten korrigiert haben, stellen Sie sicher, dass alle DLL-Versionen mit dem übereinstimmen, was Sie im Verweisordner haben. Sie müssen das Projekt entladen, das CSPROJ bearbeiten und anschließend alle DLL-Versionen in dieser Datei aktualisieren.

System.Web.Helpers
System.Web.Mvc
System.Web.WebPages

Hoffe das hilft, da ich dieses Problem endlich behoben habe! Keine roten Schnörkellinien mehr.

Dies hat auch das Kontextmenüproblem behoben, das ich hatte, wo ich nicht die Möglichkeit bekam, einen Controller, eine Ansicht usw. hinzuzufügen.

0
Pavan Dhariwal

Für mich war es ein dummer Bereitstellungsfehler: Webprojekte können mehr als eine web.config haben. Es funktionierte auf dem Rechner des Entwicklers und nicht in der Produktion, aber wir wussten nicht, dass das Implementierungsskript nur die Web.config-Datei im Stammverzeichnis packte und die Web.config-Datei nicht im Ordner Views kopierte.

0
knocte

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" />

Tatsächlich musste ich jedoch auf Version=4.0.0.1 und nicht Version=4.0.0.0 verweisen, da dieses Sicherheitsupdate vor einiger Zeit herausgeschoben wurde.

0

In SO bin ich auf mehrere Antworten gestoßen, und am Ende wurde mir klar, dass mein Fehler darin lag, dass ich falsch geschrieben hatte "Html.TextBoxFor". In meinem Fall habe ich "Html.TextboxFor" geschrieben. Ich habe das B in TextBoxFor nicht in Großbuchstaben geschrieben. Das wurde behoben und voilà. Problem gelöst. Ich hoffe das hilft jemandem.

0