Dans VS 2015, ce n’est que lorsque les fichiers Razor (.cshtml) sont utilisés environ la moitié du temps que la liste de complétion automatique/liste de suggestions/intellisense ne fonctionne pas correctement (désolé, je ne suis pas sûr du terme réel ... lorsque vous tapez un objet et cliquez sur .
et la liste des propriétés et méthodes montre à sélectionner)
Le comportement est que, lorsque je clique sur .
, la liste s’affiche pendant une fraction de seconde, puis se ferme. C’est si rapide que j’essaie de faire un cycle rapide Backspace
, .
, Backspace
, .
quelques fois au moins voir le nom dont j’ai besoin, mais je ne peux généralement pas l’obtenir et finis par devoir nom exact ailleurs du code. Extrêmement irritant ...
Cela se produit sporadiquement, sans motif réel que je puisse trouver. Voici les modèles que j'ai exclus:
J'ai vérifié toutes mes options (il ne semble pas y avoir d'options d'édition de texte pour Razor?), Essayé de vider les caches, la solution de rechargement/projets, le redémarrage de VS, qui ne semblent toujours pas fournir de motif.
Est-ce que quelqu'un a découvert cela et a une idée de l'endroit où je pourrais chercher d'autres solutions?
Exemple Voici un exemple extrêmement simple ... nouveau projet, très peu de code/fichier, vue très simple. Là où le Model.
s'arrête, je devrais avoir les méthodes de base habituelles et une collection 'Items'. Il apparaît pendant une fraction de seconde puis disparaît ... pas d'analyse de lambdas/vue complexe (cela est reproductible également):
Mise à jour: Patterns
Les choses que j'ai remarquées:
@model ns.ns.ns.type
, cela arrive rarement vers la fin "base" des espaces de noms. C’est au fur et à mesure que je me dirige vers le type que cela arrive Celui-ci est intermittent.@Html.DevExpress().
(et d'autres modèles similaires, pas nécessairement DevEx) ne posera jamais de problème)@Model
(c'est là que je le veux le plus!). J'ai trouvé des cas où cela est reproductible à chaque fois (voir l'exemple ci-dessus), mais c'est environ 90% +@models ProjName.Web.App.Subscriptions.Models.AccountCreateVM
... il pourrait échouer le Subscriptions
mais fonctionner correctement le Models
)Acc
pour AccountCreateVM
le fait fonctionner à nouveau.Cela se produit pour moi tout au long de VS2015 lors des déclarations lambda.
Cela se produit lors de l'édition du code "mid-document", comme dans, s'il y a autre chose que a) ou} après l'endroit où je tape. VS semble avoir du mal à dire où se termine la déclaration en cours et la déclaration suivante commence.
Le code suivant échouera systématiquement à déclencher Intellisense à la période, même lorsqu'il est explicitement appelé.
var subset = initialSet.Where(x => x.
var result = new Whatever();
Dans Razor, il est très courant d’éditer du code entre du texte existant et en utilisant des instructions lambda:
<strong>@Html.DisplayFor(m => m.</strong>
C'est probablement la raison pour laquelle vous ne rencontrez cela que dans Razor.
La façon dont je travaille autour de ce bogue est juste d'écrire le) pour fermer la méthode.
var subset = initialSet.Where(x => x.)
var result = new Whatever();
<strong>@Html.DisplayFor(m => m.)</strong>
Intellisense peut alors être déclenché sur la période.
Si vous utilisez une méthode nécessitant un minimum de plus que le lambda (comme RadioButtonFor), vous devrez également insérer une virgule pour chacun des paramètres supplémentaires.
<strong>@Html.RadioButtonFor(m => m.,)</strong>
Si Intellisense apparaît , mais disparaît immédiatement, la meilleure solution que j'ai trouvée jusqu'à présent consiste à taper quelques lettres d'un membre connu, puis à utiliser Ctrl-Gauche pour revenir à la période et à activer Intellisense à nouveau (Ctrl-Espace ou backspace-retaper). Cela le fait généralement apparaître et rester. Vous devrez supprimer les caractères que vous avez tapés ensuite, ce qui peut être frustrant.
J'ai eu la même erreur et je l'ai corrigé en supprimant tous les fichiers du cache du modèle de composant.
C'est le chemin:
Utilisateurs\Votre nom\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
J'espère que cela pourra aider
Dans mon cas spécifique, j'ai pu résoudre le problème en installant la dernière version de Microsoft ASP.NET et des outils Web.
https://marketplace.visualstudio.com/items?itemName=JacquesEloff.MicrosoftASPNETandWebTools-9689
Une fois installé, le problème avait disparu. Il est probable que cette mise à jour corrige quelque chose qui pourrait être corrigé avec une version plus ancienne, mais dans les deux cas, je suis heureux.
(J'ai trouvé cela dans Visual Studio sous Outils-> Extensions et mises à jour ...-> Mises à jour-> Galerie Visual Studio)
J'utilise ctrl + j comme solution temporaire lorsque je connais le contenu.
Ou continuer à écrire sans bonne parenthèse peut utiliser la complétion suivante:
@ Html.LabelFor (m => m.Name
Au lieu de...
@Html.Partial("ManageGrid", Model.)
Utilisation...
@Html.Partial("ManageGrid", Model.
Chaque fois que cette chose ennuyante m'arrive, je viens de mettre un point supplémentaire et puis ça marche. Je dois mettre le point supplémentaire à chaque fois. Par exemple, si j'écris ceci et que l'intellisence clignote et disparaît:
@Html.TextBoxFor(m => m.
alors je fais juste ça:
@Html.TextBoxFor(m => m..
Et intellisense va maintenant montrer après le premier point. J'en ai fait une habitude jusqu'à ce que MS dispose d'un correctif.