關 鍵 詞:
.NET ASP 站點 地圖閱讀提示:本文中,我們首先簡要地介紹了ASP.NET 2.0提供的新的站點導航機制,並注意到這個新的導航功能的核心是通過XML文件來詳細描述網站的導航框架。顯然,這種新導航機制的強大功能可以大大節省程序員的編碼時間。接下來,我們通過一個簡單的例子分析了本地化Web.sitemap的一般思路。
【注意】爲了在Web.sitemap文件中支持本地化功能,必須使用元素中的enableLocalization屬性—把它設置爲true,以啓動這項功能。接下來,你就可以使用元素定義每個導航節點了。但在本文示例中,由於我們要通過各個獨立的.resx文件來定義這些導航部分的內容(尤其是title和descriptioon屬性),所以我們不需要在這個文件中重複定義這些項。所以在此文件內,我們只需要定義url屬性。但要注意,你還可以通過.resx文件來定義這個屬性,從而根據終端用戶定義的文件設置,把他們定向到不同的頁面上。
另一個要注意的屬性是元素中使用的resourceKey,它是各個.resx文件中使用和定義的鍵。以下面的元素爲例:
<siteMapNode url=”News.aspx” resourceKey=”News”>
…………
</siteMapNode>
|
在這個例子中,resourceKey的值(和.resx文件中使用的鍵)都是News。這表示可以使用下面的語法在.resx文件中定義title和description屬性的值:
News.Title
News.Description
|
至此,我們已經準備好站點地圖文件Web.sitemap。接下來,我們要對ASP.NET 2.0配置文件Web.config進行一些小小的修改。
三、修改文件Web.config
爲了讓Web應用程序自動檢測和查看各個頁面的用戶所使用的文件設置,我們需要在文件的@Page指令中設置Culture和UICulture屬性,或者在Web.config文件中的元素中設置這些屬性,以支持自動檢測。
【提示】在處理導航和Web.sitemap文件時,最好在Web.config文件中進行這些修改,使它們在應用程序的每個項目上自動發揮作用。這麼做也比較簡單,因爲不需要給每個頁面添加這些修改。
要進行這樣的修改,只需打開Web.config文件並添加一個元素,如下面的清單所示。
<configuration>
<system>
<globalization culture=”auto” uiCulture=”auto” />
<system>
<configuration>
|
爲了支持自動檢測功能,只需把culture和uiCulture屬性設置爲auto。還可以把其值定義爲auto:en-US,它表示支持自動化檢測功能,但如果所定義的文件在各個資源文件中未找到,就把en-US用作默認文件。但在本例中,因爲我們要定義一組Web.sitemap默認值,所以不需要進行這樣做。
接下來,我們需要創建程序集資源文件,以定義Web.sitemap文件使用的值。
四、創建程序集資源文件
要創建一組用於Web.sitemap文件的程序集資源文件,應在項目中創建一個文件夾App_GlobalResources。
【提示】如果你使用的是Visual Studio 2005,則只需要右擊項目,然後選擇“Add Folder→App_GlobalResources.Folder”即可添加這個文件夾。
添加了App_GlobalResources文件夾後,下一步是給這個文件夾添加兩個程序集資源文件:第一個文件命名爲Web.sitemap.resx;第二個文件命名爲Web.sitemap.en.resx。其中,Web.sitemap.resx文件包含一組在Web.sitemap.resx文件中定義的用於Web.sitemap文件中的默認值,而Web.sitemap.en.resx文件包含了相應於這些值的英語版本。
文件名中有en值,表示該文件由把首選語言設置爲en-EN的用戶使用。這些設置的其它值如表所示。
.resx文件
|
對應的文件
|
Web.sitemap.resx
|
如果終端用戶的文件不能通過另一個.resx文件來識別,則使用默認值
|
Web.sitemap.en.resx
|
用於所有英語用戶的資源文件
|
Web.sitemap.en-gb.resx
|
用於所有英國英語用戶的資源文件
|
Web.sitemap.fr-ca.resx
|
用於所有加拿大法語用戶的資源文件
|
Web.sitemap.ru.resx
|
用於所有俄語用戶的資源文件
|
有了Web.sitemap.resx文件和Web.sitemap.en.resx文件之後,下面就是給這些文件相應的屬性值賦予特定的文化值。爲此,我們使用前面在Web.sitemap文件中定義的鍵,如下圖2所示。
圖2.中文站點資源文件(Web.sitemap.resx)相應的鍵定義