web-dev-qa-db-fra.com

IntelliSense dans les fichiers Razor (.cshtml) a cessé de fonctionner

Intellisense ne fonctionne pas dans les fichiers rasoir:

enter image description hereextrait de code

In my web.conifg file (in the Views folder) is apparently correct:

<?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>
56
ridermansb

C'est ce qui a fonctionné pour moi après qu'IntelliSense ait soudainement commencé à bogue et à arrêter de colorer correctement le code C # entre les balises HTML dans mes vues:


Supprimez simplement le contenu du dossier à %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache


 enter image description here

À titre d’étape supplémentaire, vous pouvez éventuellement exécuter la commande DevEnv.exe /setup dans l’invite de commande du développeur pour VS (en tant qu’administrateur) si l’étape ci-dessus ne résout pas le problème.

78
silkfire

Une cause à cela pourrait être que si vos pages Web sont définies sur la version 3 pour une application mvc4, vous pouvez simplement la modifier en version 2 dans les paramètres de l'application web.config.

  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
15
John

Lorsque intellisense cesse de fonctionner dans le fichier rasoir, le problème peut être résolu en trois étapes:

  1. Fermer Visual Studio 
  2. Supprimer le fichier d'options utilisateur de la solution (<solution-name>.suo)
  3. Rouvrez la solution dans Visual Studio. 

D'autres solutions pour les options intellisense peuvent être trouvées ici .

13
Mike

J'éprouvais cela dans Visual Studio 2013 après la mise à niveau du projet vers MVC 5.2.3. Ce qui a fonctionné pour moi a été de remplacer web.config dans le dossier "Views" par ce qui suit, car le package NuGet a laissé ce web.config contenant de nombreuses références MVC 4.0.

<?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>
12
Kevin Hirst

Dans mon cas "Xamarin" (Outils de développement d'applications mobiles) est le problème . Après avoir désinstallé Xamarin, le rasoir Intellisense fonctionne bien.

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

4
Palani Kumar

J'ai eu le même problème. Bien que j'utilise VS 2012, il existe un téléchargement qui s'applique à la fois aux VS 2013 et 2012. seul celui qui a fonctionné pour moi l'installait (encore une fois, pour moi, pour VS 2012)

VS 2013 avec ASP.NET et outils Web 2013.1 http://www.asp.net/downloads

3
Nigel G

Mon projet a été mis à niveau de VS2012 à VS2013 et cela a résolu le problème pour moi:

Remplacez "1.0.0.0" par "pages Web: Version" dans le fichier Web.config par "2.0.0.0".

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
2
Joshua Leonard

J'ai eu ce problème avec Visual Studio 2017 - je suis allé dans le répertoire où se trouve la solution et j'ai supprimé le dossier .the (c'est un dossier caché), ce qui a résolu mon problème.

1
Philipo55

Il semble qu’il existe de nombreuses raisons qui expliquent ce problème.

Dans mon cas, j'ai copié du code/des fichiers d'un autre projet, après qu'Intellisense ne fonctionne plus, car son espace de noms est différent dans les fichiers copiés, ce qui empêche Intellisense de fonctionner ... .

0
Eng. Samer T

Dans mon cas cela a résolu mon problème. Je viens de changer la valeur de version de 3 à 2. Et ça marche pour moi.

0

Après de nombreuses recherches et tests, j'ai constaté que, sans installer 2013 ou une version mise à niveau, vous pouvez toujours résoudre ce problème de coloration pour 2012. L'installation de "ASP.NET et outils Web 2013.1 pour Visual Studio 2012" a résolu ce problème. Fermez VS 2012 et redémarrez-le après l'installation.

Le lien à télécharger est, https://www.Microsoft.com/en-us/download/details.aspx?id=41532

Cela a fonctionné pour moi. J'espère que cela fonctionne pour vous tous.

0
NewUser

L'installation de ASP.NET et outils Web 2013.1 pour Visual Studio 2012 a fonctionné pour moi:

Vous devrez peut-être redémarrer VS pour que cela fonctionne.

0
csharpsql

Surveillez si votre application Web contient des zones, il y a encore un autre fichier Web.config dans le dossier Areas/Views et, dans mon cas, ce fichier de configuration était le coupable.

En outre, il se peut que vous deviez redémarrer Visual Studio après avoir apporté les modifications à Web.config. La reconstruction de la solution ne semble pas prendre en compte les modifications, du moins cela ne m'est pas arrivé.

0

J'ai eu une situation similaire, et ensuite réalisé que la vue de rasoir n'était pas incluse dans mon projet. Dès que je l'ai inclus dans le projet (cliquez avec le bouton droit de la souris sur le fichier d'affichage et sélectionnez Inclure dans le projet), Intellisense s'est présenté. 

0
mkimmet

Il me suffisait de cliquer avec le bouton droit de la souris sur "Ajouter au projet" pour que ma nouvelle vue reprenne Intellisense.

0
Sheldon

L'installation d'une nouvelle version (version nocturne) de Resharper (2018.3 EAP 3) a été utile dans mon cas.

0
Volodymyr Kotylo

Je viens de faire face à un problème très similaire: une application existante ne fournissait pas intellesense pour les vues Razor, mais je pouvais créer une toute nouvelle application et cela fonctionnait. J'ai pu résoudre le problème en utilisant Scaffolding pour créer un nouveau contrôleur et des vues pour une entité. L'intellesense a fonctionné pour la nouvelle entité, et cela a fonctionné pour les entités existantes!

0
Roland Wales

Dans mon cas, aucune des solutions ci-dessus n'a fonctionné, voici ce que j'ai fait pour résoudre mon problème:

Chargez le projet avec VS et laissez-le, puis ouvrez votre nom de projet.csproj avec Notepad ++ ou l’éditeur de texte de votre choix et apportez des modifications, telles que la suppression d’une balise de contenu (ne vous inquiétez pas, il sera renvoyé une fois). vous le réinstallez dans VS Solution Explorer), une fois que vous avez enregistré vos modifications, Visual Studio IDE détectera vos modifications et vous demandera de recharger tout le projet, cliquez sur "Oui" et sur mon code IntelliSense.

J'utilise: Microsoft Visual Studio Professional version 2019 Preview 16.3.0 Preview 2.0

J'espère que ça aide.

0
Jack