什么时候应该在 ASP.NET 控件中使用 # 和 =?
Posted
技术标签:
【中文标题】什么时候应该在 ASP.NET 控件中使用 # 和 =?【英文标题】:When should I use # and = in ASP.NET controls? 【发布时间】:2010-09-12 00:35:19 【问题描述】:我已经使用 ASP.NET 多年,但我不记得何时使用 # 和 = 是合适的。
例如:
<%= Grid.ClientID %>
或
<%# Eval("FullName")%>
有人能解释一下什么时候应该使用它们,这样我就可以牢记在心了吗? # 是否仅用于支持数据绑定的控件?
【问题讨论】:
相关(重复?):In ASP.NET, what are the different ways to inline code in the .aspx?. 我没有检查这背后的理论,但 【参考方案1】:有几种不同的“蜜蜂叮咬”:
<%@
- 页面指令
<%$
- 资源访问
<%=
- 显式输出到页面
<%#
- 数据绑定
<%--
- 服务器端评论块
ASP.Net 4 中的新功能:
<%:
- 写入页面,但使用 html 编码
ASP.Net 4.5 中的新功能:
<%#:
- HTML 编码数据绑定
【讨论】:
msdn.microsoft.com/en-us/library/… 这里有一个很好的解释:michielvoo.net/blog/… bee-stings 这句话从何而来? @Lankymart 在默认 Visual Studio 配色方案中以黑色和黄色突出显示,因此%>
看起来有点像蜜蜂蜇伤。
谢谢,我只是对这个短语与 ASP 代码块相关的来源很感兴趣,我以前从未听说过。【参考方案2】:
相当于在任何地方执行 Response.Write("")。
用于数据绑定,只能在支持数据绑定的情况下使用(如果您在代码隐藏中调用 Page.DataBind(),则可以在控件外部的页面级别上使用这些)
Databinding Expressions Overview
【讨论】:
见桂星巴克回答***.com/questions/115159/…了解的区别 【参考方案3】:这是一个great blog post by Dan Crevier,他介绍了他编写的一个测试应用程序以显示差异。
本质上:
【讨论】:
" 是 Response.Write 的快捷方式,它发生在 *after* 页面被呈现并且响应被流回浏览器。 这些才是真正的区别以上是关于什么时候应该在 ASP.NET 控件中使用 # 和 =?的主要内容,如果未能解决你的问题,请参考以下文章
什么时候应该使用 Localize 控件而不是 Literal?