什么时候应该在ASP.NET控件中使用#和=?

我一直在使用ASP.NET多年,但我永远不会记得使用#和=是否合适。

例如:

<%= Grid.ClientID %> 

要么

 <%# Eval("FullName")%> 

有人可以解释什么时候应该使用,这样我就可以保持直觉了吗? #仅用于支持数据绑定的控件吗?

3 Solutions collect form web for “什么时候应该在ASP.NET控件中使用#和=?”

无论你放置在哪里,<%=%>都等同于做Response.Write(“”)。

<%#%>用于数据绑定,只能在支持数据绑定的情况下使用(如果您在代码隐藏中调用Page.DataBind(),则可以在控件外部的页面级别使用这些数据绑定)

数据绑定expression式概述

有几个不同的“蜜蜂蜇”:

  • <%@ – 页面指令
  • <%$ – 资源访问
  • <%= – 显式输出到页面
  • <%# – 数据绑定
  • <%-- – 服务器端注释块

在ASP.Net 4中也是新的:

  • <%: – 写出到页面,但用HTML编码

这是Dan Crevier撰写的一篇很棒的博客文章,通过他写的一个testing应用程序来展示其差异。

在本质上:

  • <%=expression式在渲染时被评估
  • <%#expression式在DataBind()时计算,如果不调用DataBind(),则不计算。
  • <%#expression式可以用作服务器端控件的属性。 <%=expression式不能。
  • 可读性使用什么algorithm从URL中提取文本?
  • 如何将ASP.NET网站转换为ASP.NET Web应用程序
  • 数据库与文件系统中的图像
  • ASP.NET Excel导出编码问题
  • 如何? 参数和LIKE语句SQL
  • 如何将一个RequiredFieldValidator添加到DropDownList控件?
  • 绝对path回到networking相对path
  • 无法将lambdaexpression式转换为“string”types,因为它不是委托types