什么时候应该在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式不能。
  • 从HttpContext获取当前的System.Web.UI.Page?
  • 为什么我的ClaimsIdentity总是被authentication为false(对于web api授权filter)?
  • 如果您不知道当前密码,如何使用asp.net会员提供程序更改散列密码?
  • ASP.NET应用程序状态与静态对象
  • ASP.NET网格视图与列表视图
  • 从JavaScript读取web.config
  • 根据DropDownList的值dynamic启用或禁用RequiredFieldValidator
  • 无法让sql server compact 3.5 / 4与ASP .NET MVC 2一起工作
  • ASP.NET MVC - 获取QueryString值
  • IHttpHandler.IsReusable有什么用途?
  • ITextSharp插入文本到现有的PDF