web-dev-qa-db-fra.com

MVC Razor View Intellisense cassé dans VS 2013/2015/2017

J'ai un projet existant écrit dans VS2010 qui, lorsqu'il est chargé dans VS2010, fonctionne parfaitement.

Lorsque je charge ce même projet dans VS2013, les vues de MVC Razor contiennent de nombreuses erreurs, comme si le fichier de configuration manquait dans le dossier des vues. 

Il semble ne pas avoir correctement chargé l'éditeur Razor à l'aide des fichiers de configuration situés à la fois dans le dossier racine et dans le dossier views. À la place, des erreurs telles que ...

The name 'model' does not exist in the current context

et ...

'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'LabelFor' 
and no extension method 'LabelFor' accepting a first argument of type 
'System.Web.WebPages.Html.HtmlHelper' could be found 
(are you missing a using directive or an Assembly reference?)

...

Une idée de ce qui pourrait causer ça?

Edit: Config fichiers à la demande ....

Depuis le fichier web.config principal (pas tout car il est trop gros pour être posté)

<runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Ninject" culture="neutral" publicKeyToken="c7192dc5380945e7" />
            <bindingRedirect newVersion="3.0.0.0" oldVersion="0.0.0.0-3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Validation" culture="neutral" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect newVersion="5.0.505.0" oldVersion="0.0.0.0-5.0.505.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Fichier de configuration dans "~/Vues /" ...

<?xml version="1.0"?>  
<configuration>
    <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
            <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.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=3.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="Emedia.Common.Mvc.Views.Helpers"/>
                <add namespace="Emedia.Common.Mvc.Views.Extensions"/>
        <add namespace="Emedia.Common.Utilities"/>
        <add namespace="Emedia.Common.Utilities.Extensions"/> 
        <add namespace="Emedia.Common.Mvc.Controllers.Helpers"/>
                <add namespace="Emedia.Resources.Service"/>
        <add namespace="Emedia.Subscriber.Controllers"/>
        <add namespace="Emedia.Subscriber.Controllers.ViewModels"/>
            </namespaces>
        </pages>
    </system.web.webPages.razor>

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

    <system.web>
        <httpHandlers>
            <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
        </httpHandlers>
        <pages
            validateRequest="false"
            pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
            pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
            userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <controls>
                <add Assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
        </controls>
    </pages>
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
        <remove name="BlockViewHandler"/>
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
</system.webServer>

47
War

J'ai envisagé de modifier le post de @ ChrisMoschini, mais je pensais que c'était assez différent. Mon problème était que j'ai démarré une nouvelle application MVC5 et copié à l'aveuglette trop de paramètres web.config à partir d'un ancien projet MVC3 que je voulais utiliser comme modèle/point de départ. Cela m'a amené à avoir des versions non valides référencées dans mon web.config. 

Pour remédier à ce problème, j'ai créé un autre nouveau projet MVC5 et vérifié que les valeurs de configuration suivantes de mon mauvais projet correspondaient à l'application MVC5 non modifiée de Vanilla. Encore une fois, ne copiez pas aveuglément ces numéros de version. Assurez-vous simplement qu'ils correspondent à une application Vanilla MVC de la version que vous essayez de mettre au travail

dans la racine web.config:

<appSettings>
    ...
    <add key="webpages:Version" value="3.0.0.0"/> 
    ...
</appSettings>
<system.web>
    ...
    <compilation debug="true" targetFramework="4.5.1"/>
    <httpRuntime targetFramework="4.5.1"/>
    ...
</system.web>

dans le Views\Web.config:

<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>


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

Certains de mes projets avaient ce problème depuis des mois. J'ai essayé tellement de solutions de contournement et rien n'a fonctionné. Les problèmes semblaient être liés aux projets: le même projet posera un problème Intellisense sur tous les PC dotés de Visual Studio. Enfin, je suis arrivé à travers ce post: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

Dans notre cas, la cause était le répertoire de sortie de tous ces projets qui étaient changés en "bin \". En remplaçant OutputPath par "bin \" (et en nettoyant le projet, en fermant puis en ouvrant Visual Studio), j'ai récupéré Intellisense.

Le message référencé ci-dessus a également fourni une solution de contournement pour conserver un répertoire de sortie séparé tout en conservant Intellisense.

J'espère que cela aidera quelqu'un un jour.

15
Jim

MS indique que pour VS2013 "les fichiers Intellisense for Razor (CSHTML et VBHTML) sont limités au balisage HTML".

Mais si vous ajoutez ces deux lignes à l'intérieur de chaque fichier .cshtml, l'intellisense fonctionnera à nouveau pour MVC3 dans VS2013:

@using System.Web.Mvc.Html
@inherits System.Web.Mvc.WebViewPage<dynamic>

Au lieu de dynamic, vous pouvez indiquer le type de votre modèle.

8
SergeyT

J'ai mis à niveau un projet MVC3 vers MVC5 et j'ai tout mis en œuvre pour éviter la seule vraie réponse à ce problème recommandée par Microsoft:

Recommencez avec un nouveau projet et transférez les bits résultants dans votre projet existant.

Ce processus est une grosse perte de temps et il semble que Microsoft devrait rendre viable un véritable chemin de mise à niveau, mais je suis ici pour vous dire que le problème est un problème émotionnel et non technique: vous devez vraiment créer un nouveau projet MVC5 et remplacez ce qui suit par le résultat de ce nouveau projet MVC5:

\Packages\*
\Project\Project.csproj
\Project\packages.config
\Project\Web.Config
\Project\Views\Web.Config
\Project\Areas\*\Views\Web.Config

Sinon, vous tournerez en rond pour l'éternité en essayant de trouver le paramètre qui fait exploser les choses. Dans notre cas, j'avais les Web.Configs tous identiques au projet MVC5 Razor Intellisense, qui venait d'être créé. J'avais utilisé tous les types d'outils de mise à niveau que je pouvais trouver. Intellisense a refusé de travailler.

Après avoir soufflé les fichiers .csproj et web.configs, etc., Intellisense est revenu comme par magie. À la différence des 2 côtés, aucune des réponses que j'ai trouvées ne correspond à ce que je vois. Les Web.Configs sont presque identiques, et les bits qui sont différents doivent être sans importance. Le principal changement réside dans ce que contient\Packages\- un grand nombre des anciennes DLL Razor, MVC et WebPages ont disparu. Cela pourrait être le truc, mais ignorez-le et gagnez un temps précieux: créez simplement un nouveau projet MVC5 et exportez les fichiers susmentionnés. C'est la seule méthode saine de mise à niveau.

7
Chris Moschini

J'ai récemment résolu ce problème moi-même. J'ai mis à niveau de MVC4 à MVC5 (en particulier 5.1). La mise à niveau vers une version plus récente de MVC a provoqué ce chaos et j'ai passé des heures à essayer de le résoudre. Des modifications mineures dans le fichier Web.Config ont corrigé le problème intellisense!

Vous avez dit que le projet fonctionnait dans VS2010, mais pas en 2013? Voir cette réponse ici .

Je recommande la mise à niveau vers MVC5. Ce n'est pas douloureux et la mise à niveau devrait être assez transparente.

Si vous effectuez une mise à niveau vers MVC5 et que vous n'obtenez toujours pas d'intellisense, vous devez mettre à jour le fichier Web.Config manuellement, car la mise à niveau risque de ne pas le faire correctement!

Voici une version modifiée de votre Web.conifg dans le dossier / Views qui devrait refléter les modifications apportées à MVC5.

<?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.1.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="Emedia.Common.Mvc.Views.Helpers"/>
            <add namespace="Emedia.Common.Mvc.Views.Extensions"/>
    <add namespace="Emedia.Common.Utilities"/>
    <add namespace="Emedia.Common.Utilities.Extensions"/> 
    <add namespace="Emedia.Common.Mvc.Controllers.Helpers"/>
            <add namespace="Emedia.Resources.Service"/>
    <add namespace="Emedia.Subscriber.Controllers"/>
    <add namespace="Emedia.Subscriber.Controllers.ViewModels"/>
        </namespaces>
    </pages>
</system.web.webPages.razor>

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

<system.web>
    <httpHandlers>
        <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <controls>
            <add Assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
    </controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />

<handlers>
    <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>

Si la mise à niveau n'est pas une option, je crains que vous n'ayez besoin de continuer à utiliser VS2010 si vous souhaitez une prise en charge intellisense de MVC3. Cependant, je suggère fortement de passer à MVC5.

6
Joshua H

Pour quiconque pourrait tomber sur cela, je n'ai trouvé aucune des réponses précédentes pour vraiment résoudre mon problème ou ne pas le concerner. Quoi qu'il en soit, le moyen qui a résolu ce problème pour moi et redonné vie à intellisense a été d'aller dans mon dossier bin et de supprimer tous les fichiers qu'il contient, puis de nettoyer/reconstruire et tout a été corrigé. 

5
makinitmine

Lorsque j'ai créé un nouveau projet, intellisense a bien fonctionné, mais pour une raison quelconque, cela n'a pas fonctionné dans notre projet actuel. La seule différence que j'ai trouvée dans le fichier Views/Web.config est que nous avions MVC version 5.2.0.0 et un nouveau projet 5.0.0.0. Ce qui a fonctionné pour nous a été de changer cela:

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

pour ça:

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
     Version=5.2.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />
5
Simon Bengtsson

Une combinaison des éléments suivants a permis de résoudre le problème pour moi:

  • Création d'un nouveau projet MVC
  • Comparaison des versions dans les fichiers web.config des vues des projets existants et nouveaux
  • Fixer les versions en conséquence (voir ci-dessous)
  • Suppression de tous les fichiers du dossier bin
  • Nettoyage de la solution
  • et enfin reconstruire la solution
<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.2.3.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" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false" />
  </appSettings>
  [...]
2
Norman

J'ai eu cela maintes et maintes fois; Je suis sur mon troisième nouveau projet, et ça me rend fou! Je pense que j'ai peut-être trouvé la raison du problème. J'avais ajouté des fichiers, mais je ne les avais pas inclus dans Visual Studio. J'ai donc choisi de voir tous les fichiers:

 enter image description here

Ensuite, pour tous mes dossiers que j'avais ajoutés, je les inclut:

 enter image description here

Le problème est que cela ne semble apparaître que lorsque vous ouvrez un site MVC en tant que projet et non lorsque vous l'ouvrez en tant que site Web. 

2
Andy Brown

Cette question a été résolue, mais j'ajoute cela aux futurs utilisateurs, car aucune des solutions ci-dessus n'a fonctionné pour moi:

Essayez d'exécuter Visual Studio en tant qu'administrateur.

Quand j'ai essayé de supprimer mes paquets de nugets (qui contiennent toutes les références requises, telles que System.Web.Mvc, on m'a dit que j'avais besoin de l'autorisation de MyPC\Me. Ridiculous! ) Dans tous les cas, en tant qu'administrateur, laissez-moi au moins accéder aux fichiers qui corrigent intellisense.

2
emragins

Dans mon cas, j'ai déplacé toutes les vues d'une zone vers le dossier racine Vues. Je pense donc que VS a été confus quant à l'emplacement de mon Web.config. Je l'ai renommé Web.config, à partir de web.config, puis j'ai modifié le contenu de la configuration (par exemple, en modifiant le numéro de version de la DLL de la fabrique de rasoir de 5.2.2.0 en 5.2.3), retour.

Ensuite, je me suis promené pendant environ 30 minutes, puis je suis revenu et j'ai redémarré VS, qui a été réparé! 

1
Beanwah

Mettez à jour les packages NuGet à l'aide de la console Package Manager dans Tool, Gestionnaire de packages de bibliothèque.

En ligne de commande ..PM> Update-Package Ceci met à jour les packages NuGet, vérifie la version actuelle de System.web.MVC et met à jour cette version dans le fichier web.config du dossier Views. 

<system.web.webPages.razor>
    <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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="System.Web.Webpages"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

Fermez la solution et rouvrez-le. 

J'espère que ça marche !!!

1
Raghu

J'ai finalement eu beaucoup d'autres problèmes sur mon ordinateur en raison d'un crash du serveur réseau et j'ai fini par réinstaller Visual Studio. 

Cela a apparemment résolu le problème ... Je n'ai aucune idée de comment mais ça a été le cas.

Je me demande si dans mon cas, il s’agissait simplement d’une installation défectueuse plutôt que du problème typique.

Pour cette raison, je marquerai ceci comme la réponse mais +1 pour toutes les autres réponses car elles sont potentiellement de bonnes réponses à ce problème.

Cependant, j’ai trouvé que Microsoft indiquait clairement que Visual Studio 2013 ne prend pas en charge intellisense sur les versions inférieures de MVC supérieures à 4; par conséquent, si vous utilisez MVC 3, mettez à niveau votre projet si vous utilisez une version plus récente de MVC et que rien d’autre ne fonctionne ici. .

A noter également ... MVC est maintenant un package de pépites. N'installez donc pas MVC à partir de la redistribution de téléchargement. Laissez VS le comprendre pour vous.

1
War

J'ai changé de 

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
 Version=5.2.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />

pour ça:

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

Et ça a marché!

1
StepUp

Dans MVC 5, si vous essayez d'ajouter une zone en ajoutant simplement un dossier sous Zones et sous-dossiers pour Contrôleurs, Vues, ​​Modèles, etc., vous n'aurez pas le fichier * AreaRegistration.cs qui enregistre la zone ou le fichier web.config. dans des vues qui permettent aux VS de comprendre les éléments de rasoir que vous incluez dans vos vues. Le résultat est que IntelliSense ne fonctionne pas dans votre vue pour des choses comme ViewBag. Si vous avez des exemples de fichiers de ce type dans d'autres domaines, vous pouvez les copier et les mettre à jour si nécessaire. Vous pouvez également recommencer avec votre zone en cliquant avec le bouton droit de la souris sur Zones et en créant une zone d'ajout qui créera ces fichiers pour vous. 

1

J'ai rencontré un problème similaire. J'ai eu un projet MVC 5 créé avec VS2015 Community Edition sur lequel j'avais besoin de travailler avec VS2013 Ultimate. La suppression du bloc <system.codedom></system.codedom> suivant du fichier web.config racine a finalement permis à IntelliSense de fonctionner à nouveau dans mes vues Razor sur VS2013.

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>
0
Casey Graves

J'avais ce problème pendant six mois et je venais de réaliser que je devais déplacer mes directives @model en haut des pages. Je les avais auparavant à l'intérieur des blocs de code.

0
Steven

J'utilise visual studio 2012 . J'ai essayé tout ce qui précède, mais le problème est finalement résolu en installant:

ASP.NET et outils Web 2013.1: http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools -2013-1-for-visual-studio-2012.aspx

0
RAY

J'ai essayé presque toutes les solutions mais je n'ai pas eu l'intellisense et à la fin j'ai trouvé une solution:

  1. Aller à l'explorateur de solutions
  2. Faites un clic droit sur le fichier .cshtml ou n'importe quel fichier avec vue
  3. Sélectionnez l'option "Ouvrir avec" et définissez l'éditeur HTML (par défaut) comme paramètre par défaut.
0
akshita salunke

Lors de la mise à niveau de MVC 3 à 5, j'ai constaté que dans mon répertoire racine Web.config, la clé appSettings webpages:version était définie sur 2.0.0.0. Changer ceci en 3.0.0.0 a résolu ce problème.

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

0
Matthew Carroll

J'utilise VS 2017 professional et j'ai essayé presque toutes les réponses à ce message, ainsi que celles de ce message , mais rien ne fonctionnait pour moi. Hier, j'ai mis à jour VS, à la version 15.2 (26430.6) Release, et intellisense est de retour dans mes fichiers cshtml!

0

Essayez de définir la propriété CopyLocal de la référence System.Web.Mvc à true. Parfois, cela aide avec Intellisense. 

0
Zachary Kniebel