Nach erheblichen Umgestaltungen in meiner MVC 4-Anwendung zeigt Razor diesen Fehler beim Debuggen von Views an:
Der Name 'Modell' existiert im aktuellen Kontext nicht.
Dies ist die fehlerhafte Codezeile:
@model ICollection<DataSourceByActive>
Ich weiß, dass die Verwendung von @model
korrekt ist.
Warum passiert dies? Wie kann ich es reparieren?
asp.net-mvc
asp.net-mvc-4
razor
Kehlan Krumme
quelle
quelle
Antworten:
Ich denke, Sie haben die Datei web.config, die sich im Ordner Views befindet, durcheinander gebracht.
Erstellen Sie ein neues Projekt, das auf dasselbe .NET-Framework abzielt, und kopieren Sie die Datei Views / web.config über die Datei in Ihrem aktuellen Projekt. Dies wird Ihr Problem beheben.
Wie Dudeman3000 kommentierte, haben alle Bereiche in Ihrem MVC-Projekt auch
Views\web.config
Dateien.quelle
This will fix your problem.
Es hat nicht.Stellen Sie sicher, dass Sie sowohl in Ihrer Site
Web.config
als auch im AnsichtsverzeichnisWeb.config
imappSettings
Abschnitt Folgendes habenFür MVC5 verwenden Sie:
(Und es existiert nur in der Hauptdatei
Web.config
.)quelle
3.0.0.0
. (Und es existiert nur in der Hauptdatei Web.config.)2.0.0.0
stattdessen auf die Version abzielte3.0.0.0
. Eine Änderung hat das Problem behoben. Danke dir!Folgendes habe ich getan:
Die .suo-Datei ist eine versteckte Datei im selben Ordner wie die .svn-Lösungsdatei und enthält die Visual Studio-Benutzeroptionen.
quelle
web.config
Datei für dieASP.NET Core
App, daher hat dies für mich funktioniert (es wurden auch einige Erweiterungen für eine verbesserte Intelligenz hinzugefügt)..vs
Ordners hat geholfen.Ich hatte das gleiche Problem, ich habe ein neues Projekt erstellt und die web.config-Dateien kopiert, wie in der Antwort von Gupta empfohlen, aber das hat die Dinge für mich nicht behoben. Ich habe die Antwort von Alex und Liam überprüft. Ich dachte, diese Zeile muss aus der neuen web.config kopiert worden sein, aber es sieht so aus, als hätte das neue Projekt selbst diese Zeile nicht (MVC5):
Das Hinzufügen der Zeile zur Datei views / web.config hat das Problem für mich behoben.
quelle
Das Ändern der folgenden Zeile in der Datei web.config des Ansichtsordners hat den gleichen Fehler behoben.
Von
Zu
quelle
System.Web.Mvc
Baugruppenreferenz, um die Hauptversion zu bestätigen, die Sie benötigen.In meinem Fall habe ich kürzlich ein Update von MVC 4 auf MVC 5 durchgeführt, was die web.config ziemlich durcheinander bringt. Dieser Artikel hat enorm geholfen.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
Unter dem Strich müssen Sie alle Ihre Versionsnummernreferenzen in Ihrer web.config und Views / web.config überprüfen, um sicherzustellen, dass sie auf die richtigen aktualisierten Versionen verweisen, die mit MVC 5 verknüpft sind.
quelle
Der Wechsel von @model zu @Model hat den Job für mich erledigt.
@model repräsentiert den Objekttyp View Model. @Model repräsentiert das View Model-Objekt.
quelle
Ich habe eine Lösung gefunden. Wenn Sie die Rasiermesserversion oder mvc 4 auf 5 aktualisieren möchten, ändern Sie einige Zeilen.
Alter Code in Views / web.config
Ersetzt mit
sectionGroup
muss auch geändert werden.quelle
In meinem Fall erweist sich der folgende Code als nützlich. Platzieren Sie den folgenden Code in der Datei Web.config im Ordner Ansichten.
Stellen Sie nach der Aktualisierung des Codes sicher, dass die Lösung bereinigt und neu erstellt wird. Ich hoffe das hilft dir weiter!
quelle
Keine der vorhandenen Antworten für mich gearbeitet, aber ich fand , was tat für mich Arbeit durch die Vergleich
.csproj
Dateien von verschiedenen Projekten. Die folgende manuelle Bearbeitung der.csproj
XML-Datei hat das Razor-Intellisense-Problem für mich gelöst. Vielleicht kann dies jemand anderem helfen, der alle anderen Antworten ohne Erfolg ausprobiert hat. Key ist jede Instanzen zu entfernen<Private>False</Private>
in der<Reference>
‚s:Ich weiß nicht, wie diese dorthin gekommen sind oder was sie genau tun. Vielleicht kann jemand, der klüger als ich ist, diese Informationen hinzufügen. Ich war einfach froh, dieses Problem endlich lösen zu können.
quelle
Aus irgendeinem Grund hatte meine web.config 0.0.0.0 im oldversion Attribut:
wechseln zu 1.0.0.0 war die Lösung:
quelle
Ich habe ein MVC4-Projekt mit Visual Studio 2019 verwendet - und es stellte sich heraus, dass VS 2019 MVC 4 nicht sofort unterstützt. Sie müssen dies installieren.
Schritte:
HINWEIS: Erforderlich, damit Visual Studio geschlossen wird
quelle
In meinem Fall bestand das Problem darin, dass ich nach dem Upgrade des Projekts von MVC 4 auf MVC 5 eine Versionsänderung in der Ansicht / web.config verpasst habe:
Es hatte noch die alte Version 2.0.0.0. Nachdem die Version auf 3.0.0.0 geändert wurde, funktionierte alles genau richtig.
Aufgrund dieses Problems begann Visual Studio 2015 Community Edition jedes Mal, wenn ich eine CSHTml-Datei öffnete, mit dem Bashing der CPU (30-40% Auslastung im Leerlauf).
quelle
Ich hatte das gleiche Problem bei der Bereitstellung auf einem Azure App-Dienst
In meinem Fall lag es daran, dass ~ / Views / Web.config nicht im Projekt enthalten war.
Es hat in IIS Express funktioniert, aber bei der Bereitstellung in Azure wurde der gleiche Fehler angezeigt. Da es nicht in der .csproj-Datei enthalten war, wurde es nicht bereitgestellt.
Die Lösung bestand darin, sicherzustellen, dass ~ / Views / Web.config im Projekt enthalten ist.
Wenn Sie zum Lösungs-Explorer gehen und auf das Symbol "Alle Dateien anzeigen" klicken und dann "Ansichten" öffnen, wird dort möglicherweise eine nicht enthaltene Web.config-Datei angezeigt.
Fügen Sie es hinzu, veröffentlichen Sie es erneut und Bob ist Ihr Onkel.
quelle
Für mich war das Problem eine widersprüchliche .NET-Version in einer der Bibliotheken, die ich kürzlich importiert habe. Die von mir importierte Bibliothek wurde für 4.5.2 kompiliert und die ASP.NET MVC-Site, die ich importiert habe, in Ziel 4.5. Nach dem Neukompilieren der Bibliothek für 4.5 würde die Website komprimiert.
Es gab auch keine Kompilierungsfehler, aber das Problem wurde als "Warnung" gemeldet. Lesen Sie daher unbedingt alle Warnungen, falls vorhanden.
quelle
Um dies zu lösen, habe ich sichergestellt, dass ich mit NuGet und Package Manager Console auf die neueste MVC-Version aktualisiert habe.
Installationspaket Microsoft.AspNet.Mvc -Version 5.2.4
Dann auf die neueste Razor-Version aktualisiert
Installationspaket Microsoft.AspNet.Razor -Version 3.2.4
Dann habe ich alle web.config-Dateien geändert, um die Änderung widerzuspiegeln. Wie Sie unten sehen werden:
Stellen Sie in der Hauptdatei web.config sicher, dass die Version webpages: korrekt ist. Hier finden Sie es (ignorieren Sie die anderen Tasten):
Suchen Sie dann nach den anderen in den Assemblys aufgelisteten Versionen und vergleichen Sie die Version der Assembly mit der Version der Bibliothek, die in Ihren Projektreferenzen aufgeführt ist! Möglicherweise benötigen Sie nicht alle diese.
Runtime AssemblyBinding sollte auch die "Newversion" anzeigen. Sehen Sie, wo NewVersion 5.2.4.0 steht. Überprüfen Sie aber auch alle anderen Versionen.
Stellen Sie dann im Abschnitt Ansichten Web.Config sicher, dass Razor die richtige Version ist:
Und zuletzt gibt es den Abschnitt Seiten der Views Web.Config
quelle
Wenn Sie dieses Problem wie ich an Ihrem Projekt ändern, müssen Sie Ihre web.config ändern, die sich im Ansichtsordner befindet. Schreiben Sie einfach eine neue Zeile, indem Sie eine leere Zeile eingeben oder entfernen. Speichern Sie dann Ihre web.config und erstellen Sie sie neu. Mein Problem wurde mit dieser Lösung gelöst
quelle
Ich habe versucht, eine Ansicht hinzuzufügen, die sich außerhalb meines Ordners "Ansichten" befindet (nur um meinen Code anders zu organisieren, denke ich), als ich dieses Problem hatte. Das Erstellen der Ansicht in Ansichten (wie üblich) löste das Problem.
quelle
In meinem Fall fehlte mir @ am Anfang des Foreach
quelle
In meinem Fall habe ich versehentlich die Datei web.config aus dem Ordner "Ansichten" entfernt. Ich fügte es wieder hinzu und es war in Ordnung.
quelle
Ich habe das Problem gelöst, indem ich
@Model
statt nurmodel
beim Drucken der Variablen verwendet habe.quelle
Sie werden wahrscheinlich eine Variable mit dem Namen im Code verwenden
model
.quelle