VS 2015 Razor自动完成/智能感应下拉菜单后立即隐藏
在VS 2015中,只有在Razor(.cshtml)文件中,大约一半的时间自动完成/build议列表/ intellisense不能正常工作(对不起,不确定实际期限…当你键入一个对象,并打.
和属性和方法列表显示可供select)
行为是我打的时候 ,列表popup几分之一秒,然后closures。 它发生得如此之快,我尝试做一个快速的Backspace
, Backspace
循环几次,至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名称会将其重新启动并重新开始工作。 在上面的例子中,开始为
AccountCreateVM
inputAcc
会导致它重新开始工作。
在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.