Der Typ oder der Namespacename ist im Namespace ‘System.Web.Mvc’ nicht vorhanden.

Buiding MVC3-Lösung ist gut gelaufen, aber haben einen Fehler im Browser:

Compiler-Fehlermeldung: CS0234: Der Typ oder Namespacename ‘Html’ ist nicht im Namespace ‘System.Web.Mvc’ vorhanden (fehlt eine Assemblyreferenz?)

Source Error: Line 25:  Line 26: <!----> Line 27:  Line 28:  Line 29:  

Ich habe Pakete für die Lösung mit NuGet installiert und für alle MVC3 Projekte MVC3 . Enthält MVC3 Bibliotheken System.Web.Mvc.Ajax , System.Web.Mvc.Html und andere? Warum erhalte ich den Fehler?


Im Ordner “References” habe ich System.Web.Mvc

Runtime version: v4.0.30319 ,

 Version: 3.0.0.0 

Web.config

      

MSDN der System.Web.Mvc-Namespace

Datei packages.config :

                 

Bereinigen Sie Ihre Lösung und legen Sie dann die Eigenschaft dieser Dateien auf Copy Local = True .

So legen Sie die Eigenschaft Copy Local auf True oder False fest

Klicken Sie im Projektmappen-Explorer auf die Schaltfläche Alle Dateien anzeigen, um den Knoten Verweise anzuzeigen.

  • Öffnen Sie den Knoten Verweise für das Projekt.
  • Klicken Sie mit der rechten Maustaste auf einen Verweis in der Liste Verweise, und klicken Sie auf Eigenschaften. Die mit dieser Referenz verknüpften Eigenschaften werden in einer Liste im Eigenschaftenfenster angezeigt.
  • Ändern Sie in dem Eigenschaftsfenster die Eigenschaft Copy Local zu True oder False.

Aus irgendeinem Grund haben ZWEI meiner Lösungen Web-Projekte, die asp.net MVC spontan spontan deinstalliert haben. Ich habe es von Nuget installiert und jetzt arbeiten beide wieder. Dies geschah nach einem letzten Stapel von Windows-Updates, die .net Framework-Updates für die von mir verwendete Version enthielten (4.5.1).

Bearbeiten: Aus dem. Net Web Development und Tools Blog:

Microsoft Asp.Net MVC Sicherheitsupdate MS14-059 hat meinen Build zerstört!

Dieser fängt mich normalerweise auf, wenn ich von IIS starte und der App-Pool für die Standard-Site auf .NET Version 2.0 eingestellt ist. Bei Verwendung von IIS von Visual Studio wird ein virtuelles Verzeichnis erstellt, das jedoch weiterhin im App-Pool der Standardwebsite ausgeführt wird. Wenn Sie den eingebauten Webserver verwenden, klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, gehen Sie zu den Eigenschaften und stellen Sie sicher, dass Sie es unter der richtigen Version von .NET ausführen. Unter IIS überprüfen Sie die .NET-Version in Ihrem App-Pool.

Im Anschluss an meinen letzten Kommentar zur Erstellung des Projekts – fügen Sie die Assemblies wie unten beschrieben korrekt ein (aus der Standarddatei web.config, die von der MVC3-Projektvorlage in VS10 generiert wurde):

          

Sie müssen MVC aktualisieren.

  1. Gehen Sie zu Extras -> NuGet Package Manager -> NuGet-Pakete für die Lösung verwalten
  2. Klicke auf “Updates”
  3. Aktualisieren Sie “Microsoft ASP.NET MVC”
  4. Lösung neu erstellen

Ich hatte das gleiche Problem – mein Szenario war, dass ich die neue System.Web.Mvc.dll von einem lib-Ordner referenzierte, und ich hatte “Copy Local” nicht auf true festgelegt. Die Anwendung kehrte dann zu der Version in der GAC zurück, die nicht die richtigen Namespaces (Html, Ajax usw.) enthielt und mir den Laufzeiterrors gab.

Meine Lösung war unter Manage Nuget Packages for Solution … – Ich hatte zig Updates für einige Pakete.

Lassen Sie mich einen halben Schritt zurückgehen und sagen, dass ich mich selbst überanstrengt habe, weil ich die Lösung und die Projekte von einem Ordner zum nächsten verschoben habe … also waren die Dinge bereits aus dem Gleichgewicht, verglichen mit dem, wofür die Projekte gedacht hatten. Alles ist gut gelaufen, aber scheinbar wird Nugget verwirrt, es sei denn, Sie verwenden einen anderen Ansatz als ich.

Zurück zur Lösung … Ich ging einfach zum Verwalten von Nuget-Paketen für die Lösung … >> Updates >> Microsoft und .NET und klicken Sie auf die Schaltfläche Alle aktualisieren .

Alles war wieder normal und glücklich.

Ich habe ein mvc 5-Projekt heruntergeladen und auf das Problem hingewiesen

  

Mit dieser Fehlermeldung:

 CS0234: The type or namespace name 'Ajax' does not exist in the namespace 'System.Web.Mvc' (are you missing an assembly reference?) 

-> in dem ich auf diese Webseite kam und ein sauberes und ein paar Sachen oben usw. ausprobiert habe …

Was für mich funktionierte, war einfach

 Manage Nuget and Update all the packages. Then it worked fine. 

Diese Antwort ist angesichts des Fragetermins ziemlich spät, aber jemand kann es nützlich finden.

Keine der oben genannten Lösungen funktionierte für mich in Visual Studio 2012 auf einem lokalen Projekt, Net Framework 4.5 MVC 4. Für den Kontext folgte ich ein Tutorial zum Erstellen einer Barebones Web API auf CodeProject ( http://www.codeproject.com/ Artikel / 615805 / Creating-a-Clean-Minimal-Footprint-ASP-NET-WebAPI ) als ich auf dieses Problem stieß.

Was für mich funktionierte, war das explizite Hinzufügen von “System.Web.Mvc” zu den Verweisen meiner Anwendung, obwohl die Anwendung bereits auf “System.Web” verwiesen hat.

Das Ausführen des folgenden Befehls im nugget-Paketmanager hat es für mich behoben:

 update-package microsoft.aspnet.mvc -reinstall 

Ich hatte das gleiche Problem, aber nichts von dem oben genannten funktionierte für mich. Sie haben mich jedoch in die richtige Richtung gebracht.

Wenn ich beispielsweise “Copy Local” für “System.Web.Mvc” auf “true” festlege, wird der Wert automatisch auf “False” zurückgesetzt.

Ich habe mehrere Projekte, die von der System.Web.Mvc-Referenz in meiner Lösung abhängen, aber nur eins verursachte dieses Problem. In VS 2012 ist diese Referenz mit dem gelben Achtungsdreieck gekennzeichnet.

Suchen Sie diese Referenz => entfernen Sie sie => fügen Sie sie erneut hinzu

Das hat es für mich behoben. Hoffe das hilft

Zeigen Sie die Referenzpfade in Ihrem csproj an und überprüfen Sie sie.

Ich hatte Verweise auf System.Web.Mvc (und andere) entfernt und sie in einen benutzerdefinierten Pfad zurückgeschrieben. C:\Project\OurWebReferences

Nachdem dies getan wurde, änderte sich jedoch der Referenzpfad im Standbild csproj nicht. WAR

  False ..\..\..\..\OurWebProject\bin\Debug\System.Web.Mvc.dll  

Wurde manuell geändert

  False ..\..\..\..\OurWebReferences\System.Web.Mvc.dll  

Pfade sind nur ein Beispiel.

Für mich bestand die Lösung darin, sicherzustellen, dass alle Projekte für dieselbe CPU erstellt wurden – in meinem Fall x86

Copy Local = True wurde für eines meiner Projekte getriggers. Aber in einem anderen Projekt, bekomme ich den gleichen Fehler, versucht, Copy Local = True zu setzen, aber es triggers nicht mein Problem. Ändern des Zielframeworks von 4.5.1 auf 4.5 in den Projekteigenschaften, die damit unterstützt werden.

Ich habe etwas wirklich Dummes getan (und vielleicht hast du es auch getan).

Ich habe versucht, System.Web.Mvc.Html.Partial("") aufzurufen.

System.Web.Mvc.Html ist ein Namespace und keine class und ich habe meine Fehlermeldung nicht so gut gelesen, also habe ich meinen Fehler so interpretiert, dass die class Html nicht im Namespace System.Web.Mvc existiert und ich so ist hier gelandet (dumm ich weiß).

Alles, was ich tun musste, war eine using-statement @Html.Partial @using System.Web.Mvc.Html zu meiner Seite und dann @Html.Partial arbeitete wie erwartet.

Wenn eines der obigen Probleme Ihr Problem nicht triggers, legen Sie einfach die Eigenschaften von System.Web.Mvc.dll zum Kopieren der lokalen Struktur fest.

es wird sich lösen

Ich hatte das gleiche Problem, aber in meinem Fall wurde durch andere Faktoren entstanden. Ich schreibe das, um anderen Leuten mit dem gleichen Problem zu helfen. Ich habe eine Lösung mit mehreren Projekten. Zwei von ihnen arbeiten mit System.Web.Mvc. Normalerweise zeigte unsere Referenz auf externe Pakete, wo wir die verwendete Version kontrollierten. Aus irgendeinem Grund geht eine der Projektreferenzen zu GAC und verweist auf die GAC-DLL (Version 4.0.0.1) und das Programm hat den Fehler bekommen. Um es zu korrigieren:

Überprüfen Sie einfach, ob die Verweise auf System.Web.Mvc auf dieselbe DLL im selben Verzeichnispfad verweisen.

Ich hoffe diese Hilfe.

Ich habe System.Web.dll aus dem Bin-Ordner meiner Site gelöscht.

Ich hatte dieses Problem, die lokale Kopie ein- und ausschalten usw. funktionierte nicht. Das Projekt verwendete nuget nicht, so dass Fixes nicht in Frage kamen.

Der Fix für mich war, MVC 3 zu installieren (was ich über den Web-Plattform-Installer getan habe).

Ich vermute, dass dies mehr eine Lösung für Leute werden wird, da das .net-Framework weiter voranschreitet und die Leute nicht die älteren MVC-Sachen installiert haben.

Es ist wahrscheinlich, dass das Setzen Ihrer DLL auf CopyLocal / true oder eine der anderen wichtigen Korrekturen Ihr Problem beheben wird, aber hier ist ein weiterer Fall, der mich 20 Minuten lang vergeudete Zeit erwischt hat.

Stellen Sie beim Hinzufügen Ihrer Namespaces zu Views / Web.config sicher, dass sie korrekt verkettet sind:

           

Ok, viele Leute scheinen dieses Problem zu erleben. Mein Problem wurde durch Referenzen verursacht, die Pfade zu den Ablageordnern anderer Projekte haben oder auf DLLs aus Systemordnern verweisen. Das Projekt war ungefähr 6 Jahre alt und die vorherigen Entwickler hatten entschieden, dass dies der Weg war, ihre Bibliotheken zu referenzieren.

Die Lösung bestand darin, jede Referenz durchzugehen und die Pfade zu überprüfen, dann die Referenz zu entfernen und sie mit NuGet hinzuzufügen. Für jedes Paket, das nicht in NuGet war, habe ich einen anderen Ordner neben den Paketen erstellt und die DLL in dasselbe Layout wie NuGet eingefügt.

Ich musste auch die Konfigurationsdateien durchgehen und sicherstellen, dass die richtige Version der Pakete verwendet wurde. Ein langer und schmerzhafter process!

Ich hatte das selbe Problem, keine der Lösungen funktionierte für mich, schließlich habe ich das System.Web.MVC und neu hinzugefügt Dann war alles wieder normal und mein Problem ist getriggers.