2011-10-28 68 views
22

我試圖從Java切換到.NET。

我注意到一些ASP.NET頁面中有<%$ sometext %>。有人可以解釋幾句話中的含義嗎?或者可以指出一個關於語法的參考?

回答

33

這是表達式生成器的語法,它通常用於訪問web.config中的設置。下面是使用表達式生成器的語法來得到一個連接字符串的例子:

ConnectionString="<%$ ConnectionStrings:sqlconnection %>" 

這裏的解釋所有的內聯表達式的好文章:
http://support.microsoft.com/kb/976112

表達式生成器是用來設置的值基於應用程序配置或資源文件中包含的信息來控制屬性。以下是表達式構建器的基本語法: <%$ Expression Prefix: Expression Value %> 美元符號($)向ASP.NET表明以下表達式是表達式構建器。表達式前綴定義了表達式的類型,例如AppSettings,ConnectionStrings或Resources。另外,您可以創建和定義您自己的表達式構建器。冒號(:)後面的表達式值是ASP.NET實際將用作某個屬性值的值。

+0

+1你這次擊敗了我:) – Icarus

+0

它不僅是關於web.config。這正是一些表達建造者所做的。以我的答案爲例。 – InfinitiesLoop

+0

@InfinitiesLoop:是的,我修改了我的答案。我認爲這正是它最常用的。 –

2

<%$ expressionPrefix鏈接:expressionValue%>用於expressions。 expressionPrefix是它使用的表達式構建器,而expressionValue是傳遞給表達式構建器的實際表達式。

一個示例用法:<%$ AppSettings: greeting %>它將從應用程序配置中讀出greeting

  • 的AppSettings
  • 資源
  • 的ConnectionStrings

也可以創建自己的custom表達式生成器(S):各種表達式生成器默認情況下,如提供。

This頁面給出了各種可用的ASP.NET標籤的一個很好的概述。雖然它缺少<%:%>哪個HTML編碼提供的內容。

0

這就是所謂的expression,並用於各種事情,包括從web.config中讀取,應用程序設置和用於本地化的資源文件。 Resource expressions可能是最常用的表達形式。可以使用此表達式,而不是將靜態文本放在控件中,ASP.NET運行時將選擇當前文化的資源文件並從中提取值。