簡體   English   中英

<%=%>和<%#%>之間有什么區別?

[英]What's the difference between <%= %> and <%# %>?

我試圖找出這兩者與谷歌之間的區別,但我找不到一個確切的定義,我也無法完全搜索符號。

現在我知道你可以在<%#%>之間添加一段代碼,你必須調用Page.DataBind()方法來應用它,我認為這是<%#%>的工作原理。 但<%=%>是什么意思? 我應該什么時候使用它?

基本的區別是:

<%= %>表達式在渲染時計算。

<%# %>表達式在DataBind()時計算,如果未調用DataBind()則根本不進行計算。

<%# %>表達式可用作服務器端控件中的屬性。

<%= %>表達式不能用於引用屬性或字段。

例如:

<%= Response.Write() %>

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

您可以在此處獲得有關msdn的更詳細說明: <%=%>和<%#%>之間的區別是什么

希望這可以幫助。

  • <%= %>用於引用屬性/字段。 這就像在該位置的頁面中有一個“內聯”的Response.Write

  • <%# %>用於與Eval / Bind進行數據綁定。 取自MSDN

Eval方法評估數據綁定控件(如GridView,DetailsView和FormView控件)模板中的后期綁定數據表達式。 在運行時,Eval方法調用DataBinder對象的Eval方法,

ASP.NET 4.0引入了<%: something %> ,它類似於<%= %>但是轉義內容(因此它將<轉換為&lt;等等)

所以最后你只能在一些控件中使用<%#%>(那些從BaseDataBoundControl繼承的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 (它不包含<%: %>

<%= ... %>

用於小塊信息,通常來自對象和單個信息,如單個字符串或int變量:

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

MSDN:從ASP.NET顯示

<%# .. %>

用於綁定表達式; 例如Eval和Bind,最常出現在GridView,Repeater等數據控件中:

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

MSDN:數據綁定表達式概述

互聯網資源: 內聯的asp.net標簽......將它們全部排序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM