代码之家  ›  专栏  ›  技术社区  ›  Zack Peterson

ASP。NET MVC错误:“未声明名称'__o'。”

  •  8
  • Zack Peterson  · 技术社区  · 16 年前

    它们是什么?我该如何摆脱它们?

    1 回复  |  直到 16 年前
        1
  •  8
  •   Zack Peterson    16 年前

    米哈伊尔·阿尔希波夫发布了 explanation and workaround in the ASP.NET forums

    我们终于获得了可靠的 重新定位并识别潜在问题 问题。一个微不足道的责备看起来像

    <% if (true) { %>
        <%=1%>
    <% } %>
    <%=2%>
    

    为了在<%=%>块在 设计时,ASP。NET生成 变量的智能感知。 当页面编译器看到 第一<%= ...%>块。但在这里, 该块位于if内部,因此之后 范围。我们最终生成 像这样:

    if (true) { 
        object @__o;
        @__o = 1;
    }
    @__o = 2;
    

    解决方法是添加一个虚拟 任何事情,它都会确保 if(或其他范围)声明。