27

我已经使用 ASP.NET 多年,但我不记得何时使用 # 和 = 是合适的。

例如:

<%= Grid.ClientID %>

或者

<%# Eval("FullName")%>

有人可以解释一下什么时候应该使用它们,这样我就可以把它牢记在心?# 是否仅用于支持数据绑定的控件?

4

3 回答 3

44

有几种不同的“蜜蜂叮咬”:

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

ASP.Net 4 中的新功能:

  • <%:- 写入页面,但使用 HTML 编码

ASP.Net 4.5 中的新功能:

  • <%#:- HTML 编码数据绑定
于 2008-09-22T14:39:32.453 回答
24

<%= %> 相当于在任何地方执行 Response.Write("") 。

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

数据绑定表达式概述

于 2008-09-22T14:37:06.030 回答
9

这是Dan Crevier 撰写的一篇很棒的博客文章,其中介绍了他编写的一个测试应用程序以显示差异。

在本质上:

  • <%= 表达式在渲染时进行评估
  • <%# 表达式在 DataBind() 时计算,如果没有调用 DataBind(),则根本不计算。
  • <%# 表达式可以用作服务器端控件中的属性。<%= 表达式不能。
于 2008-09-22T14:38:10.443 回答