簡體   English   中英

ASP.NET:以<%%>開頭的'#'是什么意思?

[英]ASP.NET : What does the '#' starting a <% %> mean?

我已經在asp.net中使用中繼器控件已有一段時間了,而且時不時地忘記忘了在<%#DataBinder.Eval(Container.DataItem,“ NAME”)%>中添加“#”

所以我想知道這是什么意思?

這表明您正在綁定表達式,因此您已演示了eval或bind。

數據綁定語法

數據綁定表達式包含在<%#和%>分隔符中,並使用Eval和Bind函數。 Eval函數用於定義單向(只讀)綁定。 Bind函數用於雙向(可更新)綁定。 除了調用Eval和Bind方法在數據綁定表達式中執行數據綁定之外,您還可以調用<%#和%>分隔符內的任何公共范圍的代碼來執行該代碼並在頁面處理期間返回一個值。

只是添加...

您還有:

$

讓我們綁定資源,例如:

<%$ Resources:Menu, oktext %>

=

最著名的活頁夾符號,讓我們做與Response.Write方法相同的操作

<%= myVariable %> instead <% Response.Write(myvariable) %>

.NET 4.0的新功能

:

就像<%= %>但是HTML對輸出進行編碼。 它的用法如下:

<%: Model.Name %>

就像打電話

<%= HttpServerUtility.HtmlEncode(Model.Name) %>  .. or ..
<% Response.Write(HttpServerUtility.HtmlEncode(Model.Name)) %>

這是關於美元的說明

<%$ prefix:value %>

它基於前綴創建一個表達式構建器,並將該值傳遞給表達式構建器以進行評估。 然后,表達式構建器將請求的值返回到頁面

一個示例是ASP.NET 4路由:

<%$ RouteUrl:RouteName=ProductList %>

它評估應該在RouteTable.Routes中的路由“ ProductList”。

可以在Global.asax.cs中將路由添加到RouteTable中:

RouteTable.Routes.Add( "ProductList", new Route( "products", new PageRouteHandler("~/ProductList.aspx")
));

使用$和RouteUrl的優點是,您可以將所有路由和URL維護在Global.asax.cs中的一個位置。

這里有關於$的更多信息:

http://www.beansoftware.com/ASP.NET-Tutorials/Expression-Builder.aspx

暫無
暫無

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

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