首先要在頁(yè)面級別(<%@ Page UICulture="auto" Culture="auto" %>)或整個(gè)Portal級別(在Web.config中<globalization uiCulture="auto" culture="auto"/>)定義特定 UICulture 和 Culture 屬性。這兩個(gè)屬性的值均為 auto。這將指示 ASP.NET 基于客戶(hù)端瀏覽器的首選區域性為頁(yè)的執行檢測并設置當前線(xiàn)程區域性和 UI 區域性。如果不為auto則可以為其指定具體的語(yǔ)言。
如果需要從數據庫中讀取的信息作為選擇語(yǔ)言的標準,需要對Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture 進(jìn)行更改,并且需要在 InitializeCulture() 方法中進(jìn)行,因為對首選瀏覽器語(yǔ)言的自動(dòng)檢測是在頁(yè)生存期的早期發(fā)生的。
可以通過(guò)后臺代碼或直接在頁(yè)面上調用資源文件中的內容。
有兩種形式的資源表達式:顯式和隱式。
| 資源表達式形式 | 說(shuō)明 |
|---|---|
| 顯式 | <%$ Resources:[filename prefix,]resource-key %>顯式表達式用于以聲明性語(yǔ)法定義控件屬性的值,resource-key(必需)用于映射到資源中的值。filename prefix 參數是可選的,filename 指定全局資源文件夾中的資源文件的名稱(chēng)。 |
| 隱式 | <asp:Label ID="Label1" runat="server" meta:resourcekey="resource-key-prefix" /> 隱式表達式以聲明性語(yǔ)法用作控件或對象的屬性,并且定義 resource-key-prefix,用于為控件執行許多屬性分配。資源文件包含許多具有常規形式 resource-key-prefix.Property 的潛在資源鍵,例如 Label1KeyPrefix.Text 和 Label1KeyPrefix.Font-name。所有資源都只能從本地資源獲取??梢詫⒈磉_式看作一個(gè)短格式表示法,用于在未顯式在頁(yè)中定義屬性的情況下映射一個(gè)到多個(gè)控件屬性。 |
可以使用聲明性語(yǔ)法將 ASP.NET 服務(wù)器控件屬性值設置為資源值,也可以以編程方式檢索資源值。如果在設計時(shí)資源值未知或者需要根據運行時(shí)條件設置資源值,可能會(huì )這樣做。
可以從本地資源文件和全局資源文件中獲取資源值,這些文件使用的方法返回一個(gè)可強制轉換為適當類(lèi)型的對象。由于 ASP.NET 使用強類(lèi)型編譯全局資源,因此也可以使用強類(lèi)型成員獲取全局資源。
調用 GetLocalResourceObject 或 GetGlobalResourceObject 方法以分別從全局資源文件或本地資源文件中讀取特定的資源。在 HttpContext 和 TemplateControl 類(lèi)中提供了這些重載方法。
GetGlobalResourceObject 方法采用資源類(lèi)名和資源 ID。該類(lèi)名基于的是 .resx 文件名。例如,文件 WebResources.resx 和所有相關(guān)聯(lián)的本地化文件都由類(lèi)名 WebResources 引用。
GetLocalResourceObject 方法采用表示 ResourceKey 屬性的資源名。
下面的代碼示例演示如何從本地資源文件和全局資源文件獲取資源值。這些方法返回一個(gè)對象;因此,必須將該資源強制轉換為適當的類(lèi)型。
存儲在 App_LocalResources 特殊文件夾中的默認本地資源文件根據 ASP.NET 頁(yè)命名。例如,如果在 Default.aspx 頁(yè)中使用了下面的代碼,則必須將該資源文件命名為 Default.aspx.resx。在此示例中,向此文件添加了一個(gè)名為 Button1.Text 的字符串資源,并且該資源帶有 "Found Resources" 值。
此外,在此示例中,存儲在 App_GlobalResources 特殊文件夾中的默認全局資源文件命名為 WebResourcesGlobal.resx。向此文件添加了一個(gè)名為 LogoUrl 的字符串資源,而且該資源帶有http://go.microsoft.com/fwlink/?LinkId=49295 值或其他圖像的 URL
































按照下面的語(yǔ)法獲取資源:
Resources.Class.Resource
資源將編譯到命名空間 Resources 中,并且每個(gè)默認資源都將成為 Resources 類(lèi)的成員。例如,如果創(chuàng )建了默認資源文件 WebResources.resx,并且該文件包含一個(gè)名為 WelcomeText 的資源,則可以在代碼中引用該資源,如下面的代碼示例所示:


聯(lián)系客服