IntelliSense in Razor-Dateien (.cshtml) funktioniert nicht mehr

73

Intellisense funktioniert nicht in Rasiermesserdateien:

Geben Sie hier die Bildbeschreibung ein

In meiner web.conifg-Datei (im Ordner Ansichten) ist anscheinend richtig:

<?xml version="1.0" encoding="utf-8"?>
<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.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.Routing" />
                <add namespace="System.Web.Optimization" />

                <add namespace="MvcSiteMapProvider.Web.Html" />
                <add namespace="MvcSiteMapProvider.Web.Html.Models" />

                <add namespace="DevTrends.MvcDonutCaching" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>

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

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <remove name="BlockViewHandler" />
            <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
        </handlers>
    </system.webServer>
</configuration>
ridermansb
quelle
1
Versuchen Sie, Ihre Nuget-Pakete zu aktualisieren und installieren Sie auch das VS2013-Update 1.
Alex Dresko
Erstellen Sie ein brandneues ASP MVC-Projekt und stellen Sie fest, ob Intellisense dann funktioniert.
Alex Dresko
Arbeitet an neuen Projekten. Dieses Projekt ist, dass es nicht funktioniert!
Ridermansb
1
Teile und erobere, mein Freund. Es gibt einen wichtigen Unterschied zwischen Ihrem kaputten Projekt und einem neuen Projekt. Sie müssen herausfinden, was dieser Unterschied ist.
Alex Dresko
* Ich habe die Datei web.config im Ordner views in mein Projekt kopiert (hat nicht funktioniert). * Ich habe die installierten Pakete, DLLs (und Versionen) überprüft und bin alle in Ordnung. * Ich habe versucht, die Pakete mit Update-Package -Reinstall(nicht funktioniert)
ridermansb

Antworten:

113

Dies hat bei mir funktioniert, nachdem IntelliSense plötzlich anfing, Fehler zu machen und den C # -Code zwischen den HTML-Tags in meinen Ansichten nicht mehr richtig einzufärben:


Löschen Sie einfach den Inhalt des Ordners unter %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache

Wenn Sie VS 2019 verwenden, wird der Versionsordner benannt 16.0_<hash>.


Geben Sie hier die Bildbeschreibung ein

Als zusätzlichen Schritt können Sie den Befehl optional in der DevEnv.exe /setupEingabeaufforderung für Entwickler für VS (als Administrator) ausführen, wenn das Problem durch den obigen Schritt nicht behoben wird.

Seidenfeuer
quelle
4
Dies funktionierte großartig für mich auf einem voll aktuellen VS2015U1 gerade (nur den Cache löschen)
Ruben Bartelink
4
Ich habe gerade den Cache gelöscht und er wurde behoben. Vielen Dank.
ADM-IT
1
Nachdem ich einen neuen Bereich erstellt hatte, trat mir dieses Problem aufgrund seiner neuen Ansichten auf. Ich habe gerade die Cache-Dateien gelöscht und VS wieder geöffnet und jetzt funktioniert es. Vielen Dank!
Diego Cotini
1
Wow, super, danke! Der ComponentModelCache war meine erste Adresse in VS 2013/15. Ich hatte immer eine Verknüpfung zum Ordner zur Hand: Wenn etwas kaputt geht, löschen Sie den Ordner. VS 2017 ist weniger anfällig für Cache-Korruption, daher habe ich es fast vergessen. Mein Problem war genau das gleiche: Kein IS in Razor, und das Löschen des Ordners hat es behoben. Ich hoffe, sie werden den Cache von VS 2042 kohärent bekommen ...
km
1
2 Stunden verloren, es hat endlich für mich funktioniert, als nach dem Ausführen von devenv / setup.
Marcelo De Zen
19

Wenn Intellisense in der Rasiermesserdatei nicht mehr funktioniert, besteht eine gute Chance, dass das Problem in drei Schritten behoben werden kann:

  1. Schließen Sie Visual Studio
  2. Löschen Sie die Lösungsbenutzeroptionsdatei ( <solution-name>.suo)
  3. Öffnen Sie die Lösung erneut in Visual Studio.

Weitere Lösungen für Intellisense-Optionen finden Sie hier .

Mike
quelle
9
Manchmal ist Schritt 1 genug
ksaylor11
1
Ich musste versteckte Dateien anzeigen, um meine Lösungsoptionsdatei (.suo) zu finden
SteveB
15

Eine Ursache hierfür könnte sein, dass Ihre Webseiten für eine mvc4-Anwendung auf Version 3 eingestellt sind. Sie können sie einfach in den Einstellungen der web.config-App auf Version 2 ändern.

  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
John
quelle
1
In der Tat hat das Zurückrollen auf Version 2 die Intelligenz wieder zum Leben erweckt. Aber meine System.Web, Webseiten-Referenz ist tatsächlich Version 3.0.0 und mein Projekt ist MVC 5! Das ist komisch
Anestis Kivranoglou
Ich denke, MVC 5 wird mit Webseiten Version 3 ausgeliefert. Das klingt richtig. Vielleicht sind Ihre referenzierten DLLs nicht korrekt?
John
Überprüft auch die DLLs, Versionen stimmen überein. Selbst das Erstellen eines neuen MVC 5-Projekts von Grund auf hat die Intelligenz beeinträchtigt. Ich habe VS 2012 Update 4 installiert + Web Tools 2013.1
Anestis Kivranoglou
1
Ich habe gerade das Problem gefunden ... es war das Xamarin-Plug-In, das den Fehler verursacht hat, und es ist ein bekanntes Problem.
Anestis Kivranoglou
14

Ich habe dies in Visual Studio 2013 nach dem Upgrade des Projekts auf MVC 5.2.3 festgestellt. Für mich hat es funktioniert, die Datei web.config im Ordner "Views" durch die folgenden zu ersetzen, da das NuGet-Paket diese web.config mit vielen MVC 4.0-Referenzen belassen hat.

<?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.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" />
        <add namespace="InvestureApps" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

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

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>
Kevin Hirst
quelle
Meine Ansichten / Webconfig-Datei sieht genau so aus und immer noch .. das gleiche Problem :(
Scuba Steve
2
Dies hat bei mir in Kombination mit dem Löschen des ComponentModelCache funktioniert.
WillC
Gerade die Versionen basierend darauf aktualisiert und auch den ComponentModelCache gelöscht
Wetten
Schließlich! Das hat auch bei mir funktioniert. Auch in Kombination mit dem Löschen des ComponentModelCache, nachdem ich die web.config im Ordner views aktualisiert habe
Mevius
4

Mein Projekt wurde von VS2012 auf VS2013 aktualisiert und dies löste das Problem für mich:

Ändern Sie "Webseiten: Version" in der Datei "Web.config" von "1.0.0.0" in "2.0.0.0".

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
Joshua Leonard
quelle
Meins wurde aus irgendeinem Grund auf 5 gesetzt (in VS2017). Das Ändern auf 3 scheint das Problem gelöst zu haben
bsod_
4

In meinem Fall ist "Xamarin" (Mobile App Development Tools) das Problem. Nach der Deinstallation von Xamarin funktioniert der Rasierer Intellisense einwandfrei.

http: //forums.xamarin.com/discussion/24892 ...

Palanikumar
quelle
Ich hatte ein ähnliches Ereignis mit Xamarin.
Randeep Singh
1
Für das Xamarin-Problem finden Sie die Lösung hier: stackoverflow.com/questions/27952666/…
DaveMorganTexas
Ich habe es auch auf dem Mac, aber ich brauche auch Xamarin
Lutaaya Huzaifah Idris
3

Ich hatte das gleiche Problem. Obwohl ich VS 2012 verwende, gibt es einen Download, der sowohl für VS 2013 als auch für VS 2012 gilt. Ich habe einige Korrekturen versucht (im Zusammenhang mit web.config, Deinstallation / Neuinstallation von MVC über NuGet usw.), aber die Nur eine, die für mich funktioniert hat, war die Installation (wieder für mich für VS 2012).

VS 2013 mit ASP.NET und Web Tools 2013.1 http://www.asp.net/downloads

Nigel G.
quelle
1
Für VS 2012 habe ich 'VS 2012 mit ASP.Net und Web Tools 2013.1'
ausprobiert
3

Ich hatte dieses Problem mit Visual Studio 2017 - ich ging in das Verzeichnis, in dem sich die Lösung befindet, und löschte den vs-Ordner (es ist ein versteckter Ordner), wodurch mein Problem behoben wurde.

Philipo55
quelle
1

Es scheint, dass es viele Gründe gibt, die dieses Problem verursachen.

In meinem Fall habe ich Code / Dateien aus einem anderen Projekt kopiert. Danach funktioniert Intellisense nicht mehr, da ich in kopierten Dateien einen anderen Namespace habe, sodass Intellisense nicht funktioniert. Korrigieren Sie den Namespace, damit es wieder funktioniert.

Eng. Samer T.
quelle
1

In meinem Fall hat keiner der oben genannten Punkte funktioniert. Ich habe Folgendes getan, um mein Problem zu lösen:

Laden Sie das Projekt mit VS und verlassen Sie es. Öffnen Sie dann die Datei your-project-name.csproj mit Notepad ++ oder einem beliebigen Texteditor und nehmen Sie einige Änderungen vor, z. B. das Löschen eines Content-Tags (keine Sorge, es wird einmal zurück sein) Wenn Sie Ihre Änderungen speichern, erkennt die Visual Studio-IDE Ihre Änderungen und fordert Sie auf, das gesamte Projekt neu zu laden. Klicken Sie auf "Ja" und meinen Code IntelliSense zurück.

Ich verwende: Microsoft Visual Studio Professional 2019 Vorschau Version 16.3.0 Vorschau 2.0

Ich hoffe es hilft.

Jack
quelle
0

Achten Sie darauf, ob Ihre Webanwendung Bereiche enthält. Im Ordner "Bereiche / Ansichten" befindet sich noch eine weitere Datei "Web.config". In meinem Fall war diese Konfigurationsdatei der Schuldige.

Außerdem müssen Sie Visual Studio möglicherweise neu starten, nachdem Sie die Änderungen an Web.config vorgenommen haben. Die Neuerstellung der Lösung scheint die Änderungen nicht zu übernehmen, zumindest nicht für mich.

Thorsten Westheider
quelle
nur neugierig - wie war die Web.config in den Bereichen / Ansichten / der Täter? War die Lösung im Grunde genommen nach dem Vorbild von Kevin Hirst niedriger?
Don Cheadle
0

Ich bin gerade auf ein sehr ähnliches Problem gestoßen: Eine vorhandene Anwendung bot keine Intelligenz für Razor-Ansichten, aber ich konnte eine brandneue Anwendung erstellen und es funktionierte. Ich konnte das Problem lösen, indem ich mithilfe von Scaffolding einen neuen Controller und Ansichten für eine Entität erstellte. Die Intelligenz arbeitete für die neue Entität, und sie funktionierte wieder für bestehende!

Roland Wales
quelle
0

Nach vielen Suchen und Tests stellte ich fest, dass Sie dieses Farbproblem ohne Installation von 2013 oder einer aktualisierten Version für 2012 beheben können. Die Installation von "ASP.NET und Web Tools 2013.1 für Visual Studio 2012" löste dieses Problem für mich. Schließen Sie VS 2012 und starten Sie es nach der Installation neu.

Der Download-Link lautet https://www.microsoft.com/en-us/download/details.aspx?id=41532

Es hat bei mir funktioniert. Hoffe es funktioniert für euch alle.

Neuer Benutzer
quelle
0

Ich hatte eine ähnliche Situation und stellte dann fest, dass die Rasiermesseransicht nicht in meinem Projekt enthalten war. Sobald ich es in das Projekt aufgenommen habe (klicken Sie mit der rechten Maustaste auf die Ansichtsdatei und wählen Sie In Projekt einschließen), wurde Intellisense angezeigt.

mkimmet
quelle
0

In meinem Fall hat dies mein Problem behoben. Ich ändere einfach den Versionswert von 3 auf 2. und es funktioniert für mich.

Muhammad Sohail Nazar
quelle
0

Ich musste nur mit der rechten Maustaste auf "Zum Projekt hinzufügen" klicken, damit meine neue Ansicht Intellisense aufnimmt.

Sheldon
quelle
0

Die Installation einer neueren Version (Nightly Build) von Resharper (2018.3 EAP 3) hat in meinem Fall geholfen.

Volodymyr Kotylo
quelle