asp.net内联代码<%#MyboolVal%>

时间:2009-12-04 23:48:55

标签: asp.net inline-code

我必须在这里错过一些愚蠢的东西,但我看不到它。我的工作在其网站上使用内联代码,例如:

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

这似乎对他们有用,面板会在他们的状况满足时显示。

我试图在家里的一个网站上使用类似的方法(周五晚上,所以在这一点上问老板不是最好的主意)。我根本无法输出任何东西。我在可见区域尝试了它,但是没有用,所以我想我会把它写在屏幕上:

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

但我没有得到内联代码的任何输出。出现“some text”但没有“meeee”或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 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:10)

在您的版本中尝试使用=代替#:

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

#是用于数据绑定,因此在原始代码中必须在某处调用DataBind。

答案 2 :(得分:0)

我认为问题是因为可见属性需要字符串类型的值,并且您尝试使用bool.try将其设置为将值转换为字符串

干杯