我为此做了一个快速搜索,并没有提出任何问题。在MVC Views中,“以下行可以解决ASP.NET编译器警告”问题?
不
<%-- The following line works around an ASP.NET compiler warning --%>
<%: ""%>
看起来像一个黑客攻击的一位? 这是什么意思,MS Dev Team是否正在努力寻求解决方案?
我为此做了一个快速搜索,并没有提出任何问题。在MVC Views中,“以下行可以解决ASP.NET编译器警告”问题?
不
<%-- The following line works around an ASP.NET compiler warning --%>
<%: ""%>
看起来像一个黑客攻击的一位? 这是什么意思,MS Dev Team是否正在努力寻求解决方案?
在ASP.NET论坛中有关于此的文章。没有这一行,你可能会得到类似“__o未声明”的编译器警告。这项工作可以防止这些人出现。
从asp.net论坛...
我们终于获得可靠 摄制,并确定了基本 问题。甲琐碎REPRO看起来像 这样:
<% if (true) { %> <%=1%> <% } %> <%=2%>
为了在<%在 设计时提供智能感知=%>块,ASP.NET生成到一个临时__o可变 和语言 分配(VB或C# )然后为变量提供智能感知 。 这是在页面编译器看到 第一个<%= ...%>块时完成的。但在这里, 块在if里面,所以在 if关闭后,变量出 的范围。我们最终产生 是这样的:
if (true) { object @__o; @__o = 1; } @__o = 2;
的解决方法是在页面添加早期的虚拟 表达。例如。 <%=“”%>。这将不会渲染 任何东西,并且它将确保 __o在任何潜在的 'if'(或其他范围)声明之前被声明为Render方法中的顶层。
我不知道答案,但该行只出现在基于VB.NET的项目中...... – 2010-06-25 01:37:03