這些標記有什麼區別?ASP.NET代碼表達式,數據綁定和其他聲明性表達式
<% <%# <%= <%$
更重要的是,我怎麼顯示在ASP.NET控件使用聲明語法頁屬性?我試圖在ASP.NET控件中執行此操作。任務是設置一個標籤的文本,但我不想在編輯的時候想要更改輸出控件。我得到關於服務器端控件的錯誤不能包含這個語法。我不確定我需要一個數據綁定控件來控制我想要做的事情,但這是另一種選擇。
部分答案即將到來。
更新 在ASP.NET 4.5中有一個新標籤?網站
<%:
這些標記有什麼區別?ASP.NET代碼表達式,數據綁定和其他聲明性表達式
<% <%# <%= <%$
更重要的是,我怎麼顯示在ASP.NET控件使用聲明語法頁屬性?我試圖在ASP.NET控件中執行此操作。任務是設置一個標籤的文本,但我不想在編輯的時候想要更改輸出控件。我得到關於服務器端控件的錯誤不能包含這個語法。我不確定我需要一個數據綁定控件來控制我想要做的事情,但這是另一種選擇。
部分答案即將到來。
更新 在ASP.NET 4.5中有一個新標籤?網站
<%:
部分答案
從麥克Banavige引述
<%%>嵌入的代碼塊是在 頁面的呈現階段執行 服務器代碼。 塊中的代碼可以執行 當前頁面類中的語句和調用函數。 http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx
<%=%>最適用於顯示 單條信息。 http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx
<%#%>數據綁定表達式語法。 http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx
<%$%> ASP.NET表達式。 http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx
<%@%>指令語法。 http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx
<% - - %>服務器端註釋。 http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx
更新:
好吧,這似乎工作
<asp:Label ID="MyLabel" runat="server" Text='<%# MyProperty%>'></asp:Label>
如果我使用eval語法然後我得到有關數據綁定控件錯誤或我使用了<%,然後我得到一個服務器端控制錯誤。任何更多的顏色讚賞..不知道我真的明白髮生了什麼事。
也許它與渲染階段有關。
很少有更多的觀察:
我可以使用<%=無數據綁定和獲得屬性值,但在服務器端控制,而得到錯誤不能使用它。
如果我在服務器端控件中使用<%#但我需要執行Page.Databind。
有趣的是,我可以使用<%=或<%#當我想呈現不在控件內的文本時。雖然後者需要數據綁定。
新<%:語法解釋的,也被稱爲代碼表達式語法
在ASP.NET 4我們引入了一個新的代碼表達式語法(<%: %>)呈現輸出像< %=%>塊會做 - 但也會自動在編碼之前對其進行HTML編碼。
沒有,服務器端控件不能。例如,我有一個名爲SkinPath的字符串屬性,它爲我提供了當前主題的完整App_Themes路徑。我使用的方式如下:
<img src='<%= SkinPath %>/Images/myImage.png' />
但是,以下不工作:
<asp:Image ID='image' runat='server' ImageUrl='<%= SkinPath %>/Images/myImage.png' />
相反,它呈現src
字面上的結果<img>
。
我更新了我的答案。我可以使用<%#並且可以用於綁定到一個屬性。你有更多解釋爲什麼<%不起作用?是否因爲渲染步驟的工作方式? – 2010-09-16 15:15:49
柯蒂斯,我有一個錯字:我應該把<%= SkinPath%>和不,我沒有任何推理。在我遇到一個通過將所有<%=更改爲<%#而解決的錯誤之前,我確實記得在一個項目中。有些事情你花時間弄清楚。其他時候,你完成並獲得報酬。 :) – Brad 2010-09-16 15:45:19
另一個問題:<%# %>標記必須是asp.net標記屬性中唯一的值。例如,你不能有... Text =「$ <%#x.Amount%>」... 它必須是... Text =「<%#」$「+ x.Amount%> 「... – David 2014-06-03 06:34:46