ASP.NET 網站導覽
更新:2007 年 11 月
若要使用 ASP.NET 網站巡覽,您必須描述網站的結構,以便網站巡覽 API 和網站控制項可以適當地公開網站結構。根據預設,網站巡覽系統會使用包含網站階層架構的 XML 檔。不過,您也可以設定網站巡覽系統來使用替代的資料來源。如需詳細資訊,請參閱 ASP.NET 網站巡覽提供者。
Web.sitemap 檔
建立網站導覽的最簡單方法就是建立名為 Web.sitemap 的 XML 檔,以階層方式組織網站中的頁面。ASP.NET 的預設網站導覽提供者會自動選用這個網站導覽。
雖然 Web.sitemap 檔可以參考其他網站導覽提供者,或是參考其他目錄中的其他網站導覽檔 (只要那些檔案位於相同的應用程式中),但是它必須位於應用程式的根目錄中。如需詳細資訊,請參閱 HOW TO:設定多個網站導覽和網站導覽提供者。
安全性注意事項: |
---|
如果自訂的網站導覽提供者將網站導覽資料儲存在副檔名不是 .sitemap 的檔案,則實作這樣的提供者可能有安全性風險。根據預設,ASP.NET 會設定為保護具有已知副檔名 (如 .sitemap) 的檔案,使用戶端無法下載這類檔案。若要協助保護您的資料,請將任何副檔名不是 .sitemap 的自訂網站導覽資料檔置於 App_Data 資料夾中。如需詳細資訊,請參閱設定 ASP.NET 網站巡覽的安全性。 |
下列程式碼會示範一個簡單網站的網站導覽,這個導覽有三個階層。url 可以用 "~/" 捷徑做開頭,因為這個捷徑會指定應用程式的根目錄。如需詳細資訊,請參閱 ASP.NET 網站路徑。
<siteMap>
<siteMapNode title="Home" description="Home" url="~/default.aspx">
<siteMapNode title="Products" description="Our products"
url="~/Products.aspx">
<siteMapNode title="Hardware" description="Hardware choices"
url="~/Hardware.aspx" />
<siteMapNode title="Software" description="Software choices"
url="~/Software.aspx" />
</siteMapNode>
<siteMapNode title="Services" description="Services we offer"
url="~/Services.aspx">
<siteMapNode title="Training" description="Training classes"
url="~/Training.aspx" />
<siteMapNode title="Consulting" description="Consulting services"
url="~/Consulting.aspx" />
<siteMapNode title="Support" description="Supports plans"
url="~/Support.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
在 Web.sitemap 檔中,為網站中的每一個頁面加入 siteMapNode 項目。然後,您可以在 siteMapNode 項目中置入類似項目來建立階層架構。在上述範例中,Hardware 和 Software 的頁面是 Products siteMapNode 項目的子項目。title 屬性定義了通常做為連結文字的文字,而 description 屬性則同時充當說明和 SiteMapPath 控制項中的工具提示。
注意事項: |
---|
在網站導覽中,您可以參考位於 Web 應用程式外面的 URL。ASP.NET 無法測試是否可以存取應用程式外的 URL。因此,如果啟用了安全性調整,將看不到網站導覽節點,除非將角色屬性設定為 "*",因為這可讓所有用戶端檢視網站導覽節點,而不需先測試是否可以存取 URL。如需詳細資訊,請參閱 ASP.NET 網站導覽安全性調整。 |
有效的網站導覽
有效的網站導覽檔只包含一個緊跟著在 siteMap 項目下面的 siteMapNode 項目。但是第一層的 siteMapNode 項目可以包含子 siteMapNode 項目的任意數目。此外,雖然 url 屬性可以是空的,但是有效的網站導覽不得具有重複的 URL。提供者若不是 ASP.NET 的預設網站導覽提供者,則可能不具有這種限制。
設定多個網站導覽
您可以使用多個網站導覽檔或提供者,來描述整個網站的巡覽結構。例如,您的根 Web.sitemap 檔可以使用下列程式碼參考 siteMapNode 項目中的子網站導覽檔,來連結到子網站導覽檔。
<siteMapNode siteMapFile="MySiteMap.sitemap"/>
如需詳細資訊,請參閱 HOW TO:設定多個網站導覽和網站導覽提供者。
當地語系化網站導覽
您可以當地語系化網站導覽中的下列屬性。
Attributes 集合中包含的自訂屬性
若要當地語系化 Url 屬性,或是根據使用者的地區來定義不同的巡覽結構,您需要為每一個地區定義不同的網站導覽檔,並在執行階段以程式設計方式切換至適當的 Provider。如需詳細資訊,請參閱 HOW TO:在記憶體中以程式設計方式修改網站導覽節點。如需當地語系化網站導覽的詳細資訊,請參閱 HOW TO:當地語系化網站導覽資料。