当我尝试编写类似于以下源代码的代码时,Visual Studio不会针对当前上下文显示任何Intellisense。此外,它告诉我另一个“”括号不正确。
<div>
<input type="checkbox" title="<%= LogOnView.RememberMe_ToolTip %>" />
</div>
如何通过补丁或VSPackage解决此问题(如果您有一些用于修改现有Intellisense的源代码,我会将您的源代码添加到VS Package中)?
PS。我正在将Visual Studio 2008 SP1与.NET 3.5 SP1一起使用
最佳答案
这只是Visual Studio HTML设计器组件中的一个缺点。如果将代码块拉出属性,则效果很好,将<%= %>
放入属性后,它将不再为该块提供适当的IntelliSense。我什至在style="<%= %>"
属性中使用了此功能,甚至完全无法使用语法颜色(尝试将其解析为CSS)。
我的理论是解析器位于该标记和属性的上下文中,因此它试图将您正在做的事情解释为该属性的值。例如,当您键入type="
的开放引号时,它将知道向您显示该标签的常用值列表。如果尝试在type="<%= %>"
的中间调用IntelliSense,它将向您显示相同的值列表,这与您在此代码块上下文中所期望的值不同。
使用Visual Studio语法着色来编辑JBST client-side templates时,我会遇到同样的问题。标记是相同的,但是语法着色经常出现。
我敢打赌它没有解决办法,因为它是设计师的核心。最好的选择是等待将来的版本。我没有在Visual Studio 2010中尝试此操作,以查看他们是否已解决此问题。
关于asp.net - 在带有双引号的HTML属性上使用渲染块时,为什么Intellisense不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1237775/