我的View aspx文件中有很多这些错误。
但是,它构建并运行得很好。
他们是什么?我如何摆脱它们?
答案 0 :(得分:8)
Mikhail Arkhipov发布了explanation and workaround in the ASP.NET forums:
我们终于获得了可靠的 repro并确定了潜在的 问题。一个琐碎的复制品看起来像 这样:
<% if (true) { %> <%=1%> <% } %> <%=2%>
为了在&lt;%=%&gt;中提供智能感知块在 设计时,ASP.NET生成 赋值给临时__o变量 然后提供语言(VB或C#) 变量的intellisense。 这是在页面编译器看到时完成的 第一个&lt;%= ...%&gt;块。但在这里, 块在if里面,所以之后 如果关闭,变量就会消失 范围。我们最终会产生 像这样的东西:
if (true) { object @__o; @__o = 1; } @__o = 2;
解决方法是添加一个虚拟对象 在页面的早期表达。例如。 &lt;%=“”%&gt;。这不会呈现 什么,它会确保 __o在Render方法中被声明为顶级,在任何潜在之前 'if'(或其他范围界定)声明。