<%=%>之间有什么区别?和<%#%>?

时间:2011-10-21 07:29:15

标签: asp.net visual-studio data-binding

我试图找出这两者与Google之间的区别,但我找不到确切的定义,而且我也无法完全搜索符号。

现在我知道你可以在<%#%>之间放一段代码了。你必须调用Page.DataBind()方法来应用它,我认为这是<%#%>作品。但<%=%>是什么意思?我什么时候应该使用它?

3 个答案:

答案 0 :(得分:10)

基本差异是:

<%= %>表达式在渲染时进行评估。

<%# %>表达式在DataBind()时进行评估,如果未调用DataBind(),则不会对其进行评估。

<%# %>表达式可用作服务器端控件中的属性。

<%= %>表达式不能用于引用属性或字段。

例如:

<%= Response.Write() %>

<ItemTemplate>
      <%# DataBinder.Eval("Title") %>
</ItemTemplate>

您可以在此处获得有关msdn的更详细说明:What's the difference between <%= %> and <%# %>

希望这有帮助。

答案 1 :(得分:4)

  • <%= %>用于引用属性/字段。这就像在该位置的页面中有一个Response.Write“内联”。

  • <%# %>用于与Eval / Bind进行数据绑定。取自MSDN

  

Eval方法评估数据绑定控件模板中的后期绑定数据表达式,例如GridView,DetailsView,   和FormView控件。在运行时,Eval方法调用Eval   DataBinder对象的方法,

ASP.NET 4.0引入了<%: something %> <%= %>,但是转义了内容(因此它会将<转换为&lt;,依此类推)

所以最后你可以使用&lt;%#%&gt;仅在某些控件(继承自BaseDataBoundControl

的控件中

这里有一篇文章http://msdn.microsoft.com/en-us/library/aa479321.aspx解释了如何在.NET中完成数据绑定

我将添加一个包含Asp.net所有特殊内联标记列表的链接:http://naspinski.net/post/inline-aspnet-tags-sorting-them-all-out-(3c25242c-3c253d2c-3c252c-3c252c-etc).aspx(它不包含<%: %>

答案 2 :(得分:1)

<%= ... %>

用于小块信息,通常来自对象和单个信息,如单个字符串或int变量:

The Date is now <%= DateTime.Now.ToShortDateString() %>
The value of string1 is <%= string1 %> 

MSDN: Displaying from ASP.NET

<%# .. %>

用于绑定表达式;例如Eval和Bind,最常出现在GridView,Repeater等数据控件中:

<asp:Repeater ID="rptMeetings" DataSourceID="meetings" runat="server">
    <ItemTemplate>
        <%# Eval("MeetingName") %>
    </ItemTemplate>
</asp:Repeater>

MSDN: Data-Binding Expressions Overview

互联网资源:Inline asp.net tags... sorting them all out