为什么在使用双引号的HTML attibute上使用渲染块时Intellisense不起作用?

Sou*_*ter 5 asp.net asp.net-mvc visual-studio-2008

当我尝试编写类似以下源代码的代码时,Visual Studio不会为当前上下文显示任何Intellisense.而且,它告诉我另一个"<%%>"括号不正确.

<div>
    <input type="checkbox" title="<%= LogOnView.RememberMe_ToolTip %>" />
</div>
Run Code Online (Sandbox Code Playgroud)

如何通过补丁或VSPackage解决这个问题(如果你有一些源代码来修改现有的Intellisense,我会将你的源代码添加到我的VS包中)?

PS.我正在使用Visual Studio 2008 SP1和.NET 3.5 SP1

mck*_*mey 4

这只是 Visual Studio HTML 设计器组件中的一个缺点。如果您将代码块拉到属性之外,它会很好地工作,一旦您放入<%= %>属性,它就不再在该块中为您提供正确的 IntelliSense。我什至在style="<%= %>"属性中遇到过这种情况,完全失控,甚至无法获得正确的语法颜色(尝试将其解析为 CSS)。

我的理论是,解析器位于该标签和属性的上下文中,因此它试图将您正在执行的操作解释为该属性的值。例如,当您键入 的左引号时,type="它知道会向您显示该标签的常见值列表。如果您尝试在 的中间调用 IntelliSense type="<%= %>",它将显示相同的值列表,这不是您在此代码块上下文中所期望的。

在使用 Visual Studio 语法着色编辑JBST 客户端模板时,我遇到了同样的问题。标记是相同的,但语法颜色经常会出现问题。

我敢打赌,这个问题没有解决办法,因为它对设计师来说是非常核心的。最好的选择是等待未来的版本。我还没有在 Visual Studio 2010 中尝试过这个问题,看看他们是否已经修复了它。