什么时候应该在ASP.NET控件中使用#和=?
我一直在使用ASP.NET多年,但我永远不会记得使用#和=是否合适。
例如:
<%= Grid.ClientID %>
要么
<%# Eval("FullName")%>
有人可以解释什么时候应该使用,这样我就可以保持直觉了吗? #仅用于支持数据绑定的控件吗?
无论你放置在哪里,<%=%>都等同于做Response.Write(“”)。
<%#%>用于数据绑定,只能在支持数据绑定的情况下使用(如果您在代码隐藏中调用Page.DataBind(),则可以在控件外部的页面级别使用这些数据绑定)
数据绑定expression式概述
有几个不同的“蜜蜂蜇”:
-
<%@
– 页面指令 -
<%$
– 资源访问 -
<%=
– 显式输出到页面 -
<%#
– 数据绑定 -
<%--
– 服务器端注释块
在ASP.Net 4中也是新的:
-
<%:
– 写出到页面,但用HTML编码
这是Dan Crevier撰写的一篇很棒的博客文章,通过他写的一个testing应用程序来展示其差异。
在本质上:
- <%=expression式在渲染时被评估
- <%#expression式在DataBind()时计算,如果不调用DataBind(),则不计算。
- <%#expression式可以用作服务器端控件的属性。 <%=expression式不能。