代码之家  ›  专栏  ›  技术社区  ›  Jon

ASP.NET内联代码<%MyBoolVal%>

  •  2
  • Jon  · 技术社区  · 16 年前

    我一定是错过了一些愚蠢的东西,但我看不见。我的工作在其网站上使用内联代码,例如:

    <panel runat="server" id="myid" visible='<%# MyboolVal %>'>
        some stuff
    </panel>
    

    这似乎对他们很有用,当他们的条件满足时,面板会显示出来。

    我正试图在家里的一个网站上使用类似的方法(周五晚些时候,所以现在问我的老板不是最好的主意)。我根本不能让它输出任何东西。我在不起作用的可视区域尝试过,所以我想我可以让它在屏幕上写些东西:

    <p>some text <%# String.Format("meeee {0}", Mybool) %></p>
    

    但是我没有从内联代码得到任何输出。“some text”出现,但没有“meee”或bool值。

    我在一个用户控件内执行此操作,但现在不认为这是原因。

    有什么想法吗?

    谢谢

    编辑…

    好吧,多亏了Freddy Rios的回复,我可以让文本显示出来,但当我在以下位置尝试时:

    Visible='<%= mybool %>'
    

    我得到以下编译错误:

    无法从其可见属性的字符串表示形式创建System.Boolean类型的对象。

    我对到底发生了什么感到困惑。引擎盖下面一定有我不明白的部分过程。

    编辑2:

    我在第123行得到错误:

    <fieldset class="myclass" id="projectarea" runat="server" visible='<%= ShowProjectSearchArea %>'>
    

    ShowProjectSearchArea是我的bool值,设置为false。

    如果我双击错误列表窗口中的错误,我会在弹出窗口中看到以下内容,这是我以前从未见过的:

      Cannot open file '%1'. It might not be in the solution.
    
    3 回复  |  直到 15 年前
        1
  •  10
  •   eglasius    16 年前

    在您的版本中尝试使用=而不是:

    <p>some text <%= String.Format("meeee {0}", Mybool) %></p>
    

    用于数据绑定,因此在原始代码中,必须在某个地方调用数据绑定。

        2
  •  14
  •   Pure.Krome    15 年前

    <%# 是数据绑定标记,用于设置服务器端控件的值,尤其是数据绑定控件。

    <%= 是速记 Response.Write() ,它将值写入输出。所以我们将它与静态HTML元素一起使用。

        3
  •  0
  •   Marko    16 年前

    我认为这个问题是因为Visible属性需要string类型的值,而您正试图用bool设置它。请尝试将值强制转换为string。

    干杯

    推荐文章