这些标记有什么区别?ASP.NET代码表达式,数据绑定和其他声明性表达式
<% <%# <%= <%$
更重要的是,我怎么显示在ASP.NET控件使用声明语法页属性?我试图在ASP.NET控件中执行此操作。任务是设置一个标签的文本,但我不想在编辑的时候想要更改输出控件。我得到关于服务器端控件的错误不能包含这个语法。我不确定我需要一个数据绑定控件来控制我想要做的事情,但这是另一种选择。
部分答案即将到来。
更新 在ASP.NET 4.5中有一个新标签?网站
<%:
这些标记有什么区别?ASP.NET代码表达式,数据绑定和其他声明性表达式
<% <%# <%= <%$
更重要的是,我怎么显示在ASP.NET控件使用声明语法页属性?我试图在ASP.NET控件中执行此操作。任务是设置一个标签的文本,但我不想在编辑的时候想要更改输出控件。我得到关于服务器端控件的错误不能包含这个语法。我不确定我需要一个数据绑定控件来控制我想要做的事情,但这是另一种选择。
部分答案即将到来。
更新 在ASP.NET 4.5中有一个新标签?网站
<%:
部分答案
从麦克Banavige引述
<%%>嵌入的代码块是在 页面的呈现阶段执行 服务器代码。 块中的代码可以执行 当前页面类中的语句和调用函数。 http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx
<%=%>最适用于显示 单条信息。 http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx
<%#%>数据绑定表达式语法。 http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx
<%$%> ASP.NET表达式。 http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx
<%@%>指令语法。 http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx
<% - - %>服务器端注释。 http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx
更新:
好吧,这似乎工作
<asp:Label ID="MyLabel" runat="server" Text='<%# MyProperty%>'></asp:Label>
如果我使用eval语法然后我得到有关数据绑定控件错误或我使用了<%,然后我得到一个服务器端控制错误。任何更多的颜色赞赏..不知道我真的明白发生了什么事。
也许它与渲染阶段有关。
很少有更多的观察:
我可以使用<%=无数据绑定和获得属性值,但在服务器端控制,而得到错误不能使用它。
如果我在服务器端控件中使用<%#但我需要执行Page.Databind。
有趣的是,我可以使用<%=或<%#当我想呈现不在控件内的文本时。虽然后者需要数据绑定。
新<%:语法解释的,也被称为代码表达式语法
在ASP.NET 4我们引入了一个新的代码表达式语法(<%: %>)呈现输出像< %=%>块会做 - 但也会自动在编码之前对其进行HTML编码。
没有,服务器端控件不能。例如,我有一个名为SkinPath的字符串属性,它为我提供了当前主题的完整App_Themes路径。我使用的方式如下:
<img src='<%= SkinPath %>/Images/myImage.png' />
但是,以下不工作:
<asp:Image ID='image' runat='server' ImageUrl='<%= SkinPath %>/Images/myImage.png' />
相反,它呈现src
字面上的结果<img>
。
我更新了我的答案。我可以使用<%#并且可以用于绑定到一个属性。你有更多解释为什么<%不起作用?是否因为渲染步骤的工作方式? – 2010-09-16 15:15:49
柯蒂斯,我有一个错字:我应该把<%= SkinPath%>和不,我没有任何推理。在我遇到一个通过将所有<%=更改为<%#而解决的错误之前,我确实记得在一个项目中。有些事情你花时间弄清楚。其他时候,你完成并获得报酬。 :) – Brad 2010-09-16 15:45:19
另一个问题:<%# %>标记必须是asp.net标记属性中唯一的值。例如,你不能有... Text =“$ <%#x.Amount%>”... 它必须是... Text =“<%#”$“+ x.Amount%> “... – David 2014-06-03 06:34:46