[英]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 %>
,它類似於<%= %>
但是轉義內容(因此它將<
轉換為<
等等)
所以最后你只能在一些控件中使用<%#%>(那些從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 %>
<%# .. %>
用於綁定表達式; 例如Eval和Bind,最常出現在GridView,Repeater等數據控件中:
<asp:Repeater ID="rptMeetings" DataSourceID="meetings" runat="server">
<ItemTemplate>
<%# Eval("MeetingName") %>
</ItemTemplate>
</asp:Repeater>
互聯網資源: 內聯的asp.net標簽......將它們全部排序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.