VS 2015 Razor Autocomplete/Intellisense 下拉列表在下拉后立即隐藏
VS 2015 Razor Autocomplete/Intellisense dropdown hides immediately after dropdown
在 VS 2015 中,只有在 Razor (.cshtml) 文件中,大约一半的时间 autocomplete/suggestion list/intellisense 无法正常工作(抱歉,不确定实际术语.. . 当你键入一个对象并点击 .
并且属性和方法列表显示为 select from)
行为是当我点击 .
时,列表会弹出几分之一秒然后关闭。它发生得太快了,我尝试快速 Backspace
、.
、Backspace
、.
循环几次,至少 see 我需要的名字,但我通常无法得到它,最终不得不从代码的其他地方找到确切的名字。极度恼火...
它偶尔会发生,我找不到真正的模式。以下是我排除的模式:
- 打开的文件似乎无关紧要。
- 我有没有close/reopen文件好像不重要
- 我是否导航到另一个文件并返回并不重要
- 它将 work/not 在同一个文件中多次打开和关闭
- 它似乎与任何特定的东西都不相关object/property/method
我检查了所有选项(Razor 似乎没有文本编辑选项?),尝试过清除缓存、重新加载 solution/projects、重新启动 VS,所有这些似乎仍然存在不提供模式。
有没有人遇到过这个问题并且知道我还能在哪里修复它?
例子
这是一个非常简单的例子...新项目,很少code/files,非常简单的视图。在 Model.
停止的地方,我应该有通常的基本方法和一个 'Items' 集合。它弹出一瞬间然后消失...不涉及 lambdas/complex 视图解析(这也是可重现的):
更新:模式
我注意到的事情:
- 如果我输入
@model ns.ns.ns.type
,它很少发生在命名空间的 "base" 端。当我进一步接近它发生的类型时。这个是断断续续的。
- 在某些情况下,它每次都工作得很好。例如,我经常使用 DevExpress 工具,并且从未见过任何扩展的行为(因此,
@Html.DevExpress().
(以及其他类似的,不一定是 DevEx 模型)永远不会导致问题)
- 当我访问我的
@Model
时,它几乎总是发生(这是我最想要的地方!)。我发现有些情况每次都可以重现(见上面的例子),但大约是 90%+
- 有时,当我处理对象树时,一个会失败而下一个会工作(例如:
@models ProjName.Web.App.Subscriptions.Models.AccountCreateVM
...它可能在 Subscriptions
上失败但在 [=23= 上工作正常])
- 有时,开始在自动完成中键入名称会使它重新启动并再次开始工作。在上面的示例中,开始为
AccountCreateVM
键入 Acc
会导致它再次开始工作。
在整个 VS2015 的 lambda 语句期间,我都会遇到这种情况。
编辑代码 "mid-document" 时会发生这种情况,例如,如果在我输入的位置后面除了 ) 或 } 之外还有其他内容。 VS 似乎很难分辨当前语句在哪里结束以及下一条语句从哪里开始。
以下代码在此期间始终无法触发 Intellisense,即使显式调用也是如此。
var subset = initialSet.Where(x => x.
var result = new Whatever();
在 Razor 中,在现有文本之间编辑代码并使用 lambda 语句是很常见的:
<strong>@Html.DisplayFor(m => m.</strong>
这可能就是为什么您只在 Razor 中遇到过这种情况。
我解决这个错误的方法是编写 ) 来关闭方法。
var subset = initialSet.Where(x => x.)
var result = new Whatever();
<strong>@Html.DisplayFor(m => m.)</strong>
然后可以在此期间触发 Intellisense。
如果您使用的方法至少需要 lambda(例如 RadioButtonFor),您还需要为每个额外参数添加一个逗号。
<strong>@Html.RadioButtonFor(m => m.,)</strong>
如果 Intellisense 出现,但又立即消失,目前我发现的最佳解决方案是只键入任何已知成员的几个字母,然后使用 Ctrl-向左跳回到句点,并再次触发 Intellisense(Ctrl-Space 或退格键重新键入)。这通常会使它出现并停留。您必须删除之后键入的字符,这可能会令人沮丧。
我有同样的错误,我通过删除组件模型缓存的所有文件来修复它。
这是路径:
Users\YourName\AppData\Local\Microsoft\VisualStudio.0\ComponentModelCache
希望对您有所帮助
我还没有找到根本原因,但在所有情况下,CTRL+SPACE
都有效。这不是最好的,但光年总比没有好。
(这个快捷方式不是我过去使用过的,所以这可能是标准行为,但是......)如果你在点 Model.
并且自动完成列表消失了,CTRL+SPACE 始终将其恢复,当它恢复时,它会保留! 如果只有一个可能的自动完成成员,它将在 CTRL+ 时自动为您填充该成员SPACE
知道内容后我临时用ctrl+j解决
或者不带右括号继续写可以用补全:
@Html.LabelFor(m => m.Name
只要确保 )
没有触及您正在编辑的文本,弹出窗口就会保持不变。
而不是...
@Html.Partial("ManageGrid", Model.)
使用...
@Html.Partial("ManageGrid", Model. )
智能感知似乎因触摸右括号而变得混乱。不理想,但这是我让它始终如一地为我工作的唯一方法。
在我的具体案例中,我能够通过安装最新版本的 Microsoft ASP.NET 和 Web Tools 来解决问题。
https://marketplace.visualstudio.com/items?itemName=JacquesEloff.MicrosoftASPNETandWebTools-9689
我安装后,问题就解决了。此更新很可能修复了旧版本可以修复的问题,但无论哪种方式我都很高兴。
(我在工具->扩展和更新...->更新->Visual Studio 画廊下的 Visual Studio 中找到了它)
每当这种恼人的事情发生在我身上时,我只要多加一个点就可以了。我每次都必须多加点。例如,如果我写这个并且智能闪烁并消失:
@Html.TextBoxFor(m => m.
那我就这样做:
@Html.TextBoxFor(m => m..
智能感知现在会在第一个点之后显示。在 MS 修复它之前,我已经养成了这个习惯。
而不是...
@Html.Partial("ManageGrid", Model.)
使用...
@Html.Partial("ManageGrid", Model.
在 VS 2015 中,只有在 Razor (.cshtml) 文件中,大约一半的时间 autocomplete/suggestion list/intellisense 无法正常工作(抱歉,不确定实际术语.. . 当你键入一个对象并点击 .
并且属性和方法列表显示为 select from)
行为是当我点击 .
时,列表会弹出几分之一秒然后关闭。它发生得太快了,我尝试快速 Backspace
、.
、Backspace
、.
循环几次,至少 see 我需要的名字,但我通常无法得到它,最终不得不从代码的其他地方找到确切的名字。极度恼火...
它偶尔会发生,我找不到真正的模式。以下是我排除的模式:
- 打开的文件似乎无关紧要。
- 我有没有close/reopen文件好像不重要
- 我是否导航到另一个文件并返回并不重要
- 它将 work/not 在同一个文件中多次打开和关闭
- 它似乎与任何特定的东西都不相关object/property/method
我检查了所有选项(Razor 似乎没有文本编辑选项?),尝试过清除缓存、重新加载 solution/projects、重新启动 VS,所有这些似乎仍然存在不提供模式。
有没有人遇到过这个问题并且知道我还能在哪里修复它?
例子
这是一个非常简单的例子...新项目,很少code/files,非常简单的视图。在 Model.
停止的地方,我应该有通常的基本方法和一个 'Items' 集合。它弹出一瞬间然后消失...不涉及 lambdas/complex 视图解析(这也是可重现的):
更新:模式
我注意到的事情:
- 如果我输入
@model ns.ns.ns.type
,它很少发生在命名空间的 "base" 端。当我进一步接近它发生的类型时。这个是断断续续的。 - 在某些情况下,它每次都工作得很好。例如,我经常使用 DevExpress 工具,并且从未见过任何扩展的行为(因此,
@Html.DevExpress().
(以及其他类似的,不一定是 DevEx 模型)永远不会导致问题) - 当我访问我的
@Model
时,它几乎总是发生(这是我最想要的地方!)。我发现有些情况每次都可以重现(见上面的例子),但大约是 90%+ - 有时,当我处理对象树时,一个会失败而下一个会工作(例如:
@models ProjName.Web.App.Subscriptions.Models.AccountCreateVM
...它可能在Subscriptions
上失败但在 [=23= 上工作正常]) - 有时,开始在自动完成中键入名称会使它重新启动并再次开始工作。在上面的示例中,开始为
AccountCreateVM
键入Acc
会导致它再次开始工作。
在整个 VS2015 的 lambda 语句期间,我都会遇到这种情况。
编辑代码 "mid-document" 时会发生这种情况,例如,如果在我输入的位置后面除了 ) 或 } 之外还有其他内容。 VS 似乎很难分辨当前语句在哪里结束以及下一条语句从哪里开始。
以下代码在此期间始终无法触发 Intellisense,即使显式调用也是如此。
var subset = initialSet.Where(x => x.
var result = new Whatever();
在 Razor 中,在现有文本之间编辑代码并使用 lambda 语句是很常见的:
<strong>@Html.DisplayFor(m => m.</strong>
这可能就是为什么您只在 Razor 中遇到过这种情况。
我解决这个错误的方法是编写 ) 来关闭方法。
var subset = initialSet.Where(x => x.)
var result = new Whatever();
<strong>@Html.DisplayFor(m => m.)</strong>
然后可以在此期间触发 Intellisense。
如果您使用的方法至少需要 lambda(例如 RadioButtonFor),您还需要为每个额外参数添加一个逗号。
<strong>@Html.RadioButtonFor(m => m.,)</strong>
如果 Intellisense 出现,但又立即消失,目前我发现的最佳解决方案是只键入任何已知成员的几个字母,然后使用 Ctrl-向左跳回到句点,并再次触发 Intellisense(Ctrl-Space 或退格键重新键入)。这通常会使它出现并停留。您必须删除之后键入的字符,这可能会令人沮丧。
我有同样的错误,我通过删除组件模型缓存的所有文件来修复它。
这是路径:
Users\YourName\AppData\Local\Microsoft\VisualStudio.0\ComponentModelCache
希望对您有所帮助
我还没有找到根本原因,但在所有情况下,CTRL+SPACE
都有效。这不是最好的,但光年总比没有好。
(这个快捷方式不是我过去使用过的,所以这可能是标准行为,但是......)如果你在点 Model.
并且自动完成列表消失了,CTRL+SPACE 始终将其恢复,当它恢复时,它会保留! 如果只有一个可能的自动完成成员,它将在 CTRL+ 时自动为您填充该成员SPACE
知道内容后我临时用ctrl+j解决
或者不带右括号继续写可以用补全:
@Html.LabelFor(m => m.Name
只要确保 )
没有触及您正在编辑的文本,弹出窗口就会保持不变。
而不是...
@Html.Partial("ManageGrid", Model.)
使用...
@Html.Partial("ManageGrid", Model. )
智能感知似乎因触摸右括号而变得混乱。不理想,但这是我让它始终如一地为我工作的唯一方法。
在我的具体案例中,我能够通过安装最新版本的 Microsoft ASP.NET 和 Web Tools 来解决问题。
https://marketplace.visualstudio.com/items?itemName=JacquesEloff.MicrosoftASPNETandWebTools-9689
我安装后,问题就解决了。此更新很可能修复了旧版本可以修复的问题,但无论哪种方式我都很高兴。
(我在工具->扩展和更新...->更新->Visual Studio 画廊下的 Visual Studio 中找到了它)
每当这种恼人的事情发生在我身上时,我只要多加一个点就可以了。我每次都必须多加点。例如,如果我写这个并且智能闪烁并消失:
@Html.TextBoxFor(m => m.
那我就这样做:
@Html.TextBoxFor(m => m..
智能感知现在会在第一个点之后显示。在 MS 修复它之前,我已经养成了这个习惯。
而不是...
@Html.Partial("ManageGrid", Model.)
使用...
@Html.Partial("ManageGrid", Model.