wake-up-neo.com

Der Name 'ViewBag' ist im aktuellen Kontext nicht vorhanden

Ich habe einen Windows 2003 R2-Server. Ich muss eine .NET-MVC3-Website ausführen .. Ich habe bereits alle Runtimes (1,2 und 4) installiert, ich habe alle MVCs-Frameworks (3 und 4) installiert, aber dieser Fehler wird nicht behoben.

Ich habe die web.config, die in den Views vorhanden sein soll. Ich habe alle und jede der Lösungen für dieses Problem innerhalb und außerhalb des Stackoverflows verfolgt. Ich habe auch die gesamte DLL in meinem Bin-Ordner bereitgestellt, indem Sie Deployable Dependencies hinzufügen (Rechtsklick auf MVC-Projekt).

An diesem Punkt weiß ich nicht, was ich sonst noch tun soll. Keine Ideen oder Lösungen online.

Ich habe bereits alle Laufzeiten, Frameworks usw. deinstalliert und neu installiert. In meinem lokalen Computer läuft es einwandfrei (Windows 7), aber wenn ich bereit bin, erhalte ich folgende Fehlermeldung.

Compiler-Fehlermeldung: CS0103: Der Name 'ViewBag' ist im aktuellen Kontext nicht vorhanden

Quellfehler:

Linie 1: @{

Zeile 2: ViewBag.Title = "Homepage";

Zeile 3:}

Zeile 4: <h2> @ ViewBag.Message </ h2>

Quelldatei: d:\FamilyDermMVC\Views\Home\Index.cshtml Zeile: 2 

37

OK. Ich habe es repariert. Ich weiß nicht genau, was das Problem behoben hat, aber ich denke, diese ganzen "9 Meilen" beheben es.

Ich habe alle MVC-Erweiterungen, -Tools und alles, was Sie dort finden, entfernt (Remove Programs).

Dann erneut installiert, ohne die .net-Laufzeitumgebung zu entfernen. 2 und 4. 

Dann mvc3 und mvc4 wieder installiert. Ich war auf asp.net für die neuesten Versionen.

Dann habe ich dasselbe in meinem Laptop gemacht.

HINWEIS: Sie benötigen Power Shell 2.0, um MVC4 auf einem Windows2003-Server installieren zu können. Sie müssen den spezifischen Download für diesen Server finden.

Nachdem ich das getan hatte, wurde der App-Pool recycelt und der Server neu gestartet. 

BANG ... Seite wurde geladen.

Ich hoffe, das hilft anderen Leuten in der Zukunft.

Danke für deine Antworten.

PS: Mein Gefühl ist, dass ich nicht die gleiche Version (oder Versionen) von mvc3 (oder mvc4) in meinem Laptop bzw. Server hatte. 

1

Klingt, als hätten Sie Folgendes im Web.Config im Ansichtenordner versäumt:

/Views/Web.Config

<?xml version="1.0"?>

<configuration>

  <system.web.webPages.razor>
    <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

      <pages pageBaseType="System.Web.Mvc.WebViewPage"> // <-- this line and contents are important
        <namespaces>
          <add namespace="System.Web.Mvc" />
          <add namespace="System.Web.Mvc.Ajax" />
          <add namespace="System.Web.Mvc.Html" />
          <add namespace="System.Web.Routing" />
        </namespaces>
      </pages>

  </system.web.webPages.razor>

Ansichten leiten sich normalerweise von System.Web.Mvc.WebViewPage ab, der in der web.config konfiguriert ist. Wenn Sie die DLL nicht mit der Anwendung bereitstellen, ist die Basisklasse in der folgenden DLL installiert:

Assembly System.Web.Mvc.dll, v4.0.30319

c:\Programme (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll

Update 1

Wenn Sie ein manuelles Upgrade von MVC X auf MVC Y durchführen, müssen Sie Ihr .Net Framework (z. B. 4.5 bis 4.6) ändern. Wenn Sie alte Verweise haben (zeigen Sie auf MVC 5 statt 6), können die älteren Dateien offensichtlich nicht verwendet werden Verbindung mit neueren Dateien (z. B. können MVC 5-DLLs in 4.6 nicht mit System.Web verwendet werden).

71
Erik Philips

Ich hatte die gleiche Art von Problem (HTML-Helper-Code wurde nicht erkannt).

Ich bin nicht sicher, wie es angefangen hat, aber ich habe es gelöst, indem ich Folgendes ersetzt habe:

<appSettings>
    <add key="webpages:Enabled" value="false" />
</appSettings>

mit

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
</appSettings>

in der Views-Datei web.config.

Meine Lösung gefunden hier

5
Derfenestrator

Ich sehe, dass dies vor einiger Zeit veröffentlicht wurde, aber ich dachte, ich würde meine Erfahrung mit dieser Ausgabe trotzdem hinzufügen.

Bei der Erstellung eines neuen MVC-asp.net-Projekts erhielt ich diesen Fehler gleich vom ersten Moment an. Ich habe einfach auf BUILD -> Clean Solution geklickt, dann auf Build Solution und das Problem wurde für mich behoben. Noch immer nicht ganz sicher, warum der Fehler überhaupt erst entstanden ist, da er gleich nach seiner Erzeugung fehlerhaft war.

4
Fütemire

Resharper verursacht wahrscheinlich

Gehen Sie zu Visual Studio/Tools/Options/Resharper .__ Klicken Sie anschließend auf Suspend Now/und dann auf Resharper fortsetzen, und Ihr Tag wird nicht mehr grau sein, aber wahrscheinlich hat Ihr Rasiermesserfenster mehr Grau!

1
jwize

Es scheint, dass es viele Lösungen gibt und die Erfolgsquote von jeder ist gemischt.

Das Ändern der Versionsnummer in dieser Zeile der Datei Views/web.config hat für mich funktioniert:

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Ich habe 4.0.0.0 in 5.0.0.0 geändert, gespeichert, die Lösung geschlossen, wieder geöffnet und dann voila! Die nervigen roten Schnörkel waren verschwunden und die Intelligenz kehrte zurück

1
Matt

In meinem Fall hatte ich dieses Problem, weil ich versuchte, ein MVC 3-Projekt auf einer MVC 2-fähigen Plattform auszuführen.

dann habe ich MVC 3 auf meinem System installiert, ein Problem wurde behoben

0
ajaykalyanynr

Manchmal schließen Sie die Ansicht, Wiederherstellen, Öffnen der Ansicht hilft.

0
BrilBroeder

Ich hatte dieses Problem, unabhängig davon, ob die richtige Konfiguration in der Datei web.config vorgenommen wurde.

Es hat sich herausgestellt, dass es sich beium einige fehlerhafte Dateien im Komponentencache handelt und verhindert, dass die Razor-Ansichten ViewBag, Model und HtmlHelpers erkennen. Durch das Löschen dieser Dateien wurde das Problemgelöst (gute Versionen dieser Dateien wurden beim nächsten Öffnen von Visual Studio erstellt).

Bitte folgen Sie dem Pfad, um die Dateien zu finden:

C:\Users\your.name.here\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

Lösche alle vier Dateien:

  • Microsoft.VisualStudio.Default.cache
  • Microsoft.VisualStudio.Default.catalogs
  • Microsoft.VisualStudio.Default.err
  • Microsoft.VisualStudio.Default.external

Ich habe mein Projekt geschlossen, die Dateien auf diesem Pfad gelöscht und das Projekt erneut geöffnet, die Lösung gereinigt und erneut erstellt, und das Problem wurde behoben

Das Löschen Ihrer temporären ASP.NET-Dateien hilft auch. C:\Benutzer\Ihr.Name. Hier\AppData\Local\Temp\Temporäre ASP.NET-Dateien.

Auf diese Weise können Sie alle Fehler beheben, die mit der intelligenten Ansicht (Razor MVC) zusammenhängen Probieren Sie es aus und lassen Sie mich wissen, dass dies für mich funktioniert.

Vielen Dank!

0
Developer

durch die Installation von ASP.NET MVC 5 für Visual Studio 2012 unter http://www.asp.net/mvc/mvc5 wird das Problem für mich gelöst.

0
Joset