VS 2015 Razor自动完成/智能感应下拉菜单后立即隐藏

在VS 2015中,只有在Razor(.cshtml)文件中,大约一半的时间自动完成/build议列表/ intellisense不能正常工作(对不起,不确定实际期限…当你键入一个对象,并打.和属性和方法列表显示可供select)

行为是我打的时候 ,列表popup几分之一秒,然后closures。 它发生得如此之快,我尝试做一个快速的BackspaceBackspace 循环几次,至less可以看到我需要的名字,但是我通常无法得到它,最终不得不从代码中find确切的名字。 非常刺激…

它偶尔发生,没有我能find的真实模式。 这是我排除的模式:

  • 打开的文件似乎并不重要。
  • 我是否closures/重新打开文件似乎并不重要
  • 无论我导航到另一个文件,回来似乎并不重要
  • 它将在同一个文件中工作/不工作多次
  • 它似乎没有任何特定的对象/财产/方法相关

我已经检查了我的所有选项(似乎没有Razor的文本编辑选项?),尝试清除caching,重新加载解决scheme/项目,重新启动VS,所有这些似乎仍然没有提供任何模式。

有没有人遇到这个问题,并有任何想法,我可以看看解决它?

例子这是一个非常简单的例子…新的项目,很less的代码/文件,非常简单的视图。 Model. 停下来,我应该有通常的基本方法,还有一个'Items'集合。 它popup了一秒钟,然后消失…没有lambdas /复杂的视图parsing涉及(这也是可重复的):

在这里输入图像说明

更新:模式

我注意到的事情:

  • 如果我input@model ns.ns.ns.type ,它很less会发生在名称空间的“基本”末端。 正如我进一步朝着这种types发生的那样。 这个是间歇性的。
  • 在某些情况下,它每次都能很好地工作。 例如,我经常使用DevExpress工具,并且从来没有看到任何扩展的行为(所以, @Html.DevExpress(). (和其他类似的,不一定是DevEx模型)永远不会造成问题)
  • 几乎所有的时候,我正在访问我的@Model (这是我最想要的!)。 我发现有些情况下每次都是可重现的(见上面的例子),但是大概有90%以上
  • 偶尔,当我通过对象树工作时,下一个工作会失败(例如: @models ProjName.Web.App.Subscriptions.Models.AccountCreateVM …它可能会在Subscriptions上失败,但在Models上工作正常)
  • 偶尔,在自动完成模式下input名称会将其重新启动并重新开始工作。 在上面的例子中,开始为AccountCreateVMinputAcc会导致它重新开始工作。

在lambda语句期间,这一切都发生在VS2015。

在编辑代码“mid-document”时会发生这种情况,如果除了a)或}之外还有其他东西在我正在input的地方。 VS似乎正在努力告诉目前的陈述结束和下一个陈述开始。

以下代码即使在明确调用的情况下,也始终无法在期间触发智能感知。

 var subset = initialSet.Where(x => x. var result = new Whatever(); 

在Razor中,在现有文本和使用lambda语句之间编辑代码是很常见的:

 <strong>@Html.DisplayFor(m => m.</strong> 

这可能就是为什么你只在剃刀中体验到这一点。

我解决这个问题的方法就是写closures方法。

 var subset = initialSet.Where(x => x.) var result = new Whatever(); <strong>@Html.DisplayFor(m => m.)</strong> 

然后智能感知可以在这段时间触发。

如果您使用的方法只需要lambda(比如RadioButtonFor),那么您还需要为每个额外参数input一个逗号。

 <strong>@Html.RadioButtonFor(m => m.,)</strong> 

如果Intellisense出现,但立即消失,我发现迄今为止最好的解决scheme是只键入任何已知成员的几个字母,然后使用Ctrl-Left跳过回到周期,再次触发智能感知(Ctrl-空格或退格键)。 这通常会让它出现并停留。 您必须删除您之后input的字符,这可能令人沮丧。

我没有find根本原因,但是在所有情况下, CTRL+SPACE可以工作。 这不是最好的,但光年好于没有。

(这个快捷键不是我以前用过的,所以这可能是标准的行为,但是…)如果你在点Model. 并且自动完成列表消失, CTRL + SPACE始终将其恢复,当它恢复时,它仍然保留! 如果只有一个可能的自动完成成员,则会在CTRL +空格时自动填充该成员

只要确保)不会触及正在编辑的文本,popup窗口就会保持不变。

代替…

@Html.Partial("ManageGrid", Model.)

使用…

@Html.Partial("ManageGrid", Model. )

智力似乎通过触摸左括号而感到困惑。 不理想,但是这是我能够一直为我工作的唯一途径。

我有同样的错误,我通过删除组件模型caching的所有文件来修复它。

这是path:

用户\ YOURNAME \应用程序数据\本地\微软\ VisualStudio的\ 14.0 \ ComponentModelCache

希望有所帮助

在我的具体情况下,我能够通过安装最新版本的Microsoft ASP.NET和Web Tools来解决问题。

https://marketplace.visualstudio.com/items?itemName=JacquesEloff.MicrosoftASPNETandWebTools-9689

一旦我安装它,问题就没有了。 这个更新很可能会修复一些可以用旧版本修复的东西,但是无论如何我都很高兴。

(我发现这在Visual Studio下工具 – >扩展和更新…->更新 – > Visual Studio库)

当我知道内容时,我使用ctrl + j作为临时解决scheme。

或者继续写下右括号可以使用完成:

@ Html.LabelFor(m => m.Name

每当这个烦人的事情发生在我身上,我只是把一个额外的点,然后它的作品。 我必须每次都多加点。 例如,如果我写这个,智能闪烁并消失:

 @Html.TextBoxFor(m => m. 

那么我只是这样做:

 @Html.TextBoxFor(m => m.. 

智能感应现在将显示在第一个点之后。 我已经做了这个习惯,直到MS有一个修复它。

代替…

 @Html.Partial("ManageGrid", Model.) 

使用…

 @Html.Partial("ManageGrid", Model.