共用方式為


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:設定多個網站導覽和網站導覽提供者

當地語系化網站導覽

您可以當地語系化網站導覽中的下列屬性。

若要當地語系化 Url 屬性,或是根據使用者的地區來定義不同的巡覽結構,您需要為每一個地區定義不同的網站導覽檔,並在執行階段以程式設計方式切換至適當的 Provider。如需詳細資訊,請參閱 HOW TO:在記憶體中以程式設計方式修改網站導覽節點。如需當地語系化網站導覽的詳細資訊,請參閱 HOW TO:當地語系化網站導覽資料

請參閱

工作

HOW TO:在記憶體中以程式設計方式修改網站導覽節點

HOW TO:設定多個網站導覽和網站導覽提供者

HOW TO:當地語系化網站導覽資料

概念

ASP.NET 網站巡覽概觀

ASP.NET 網站巡覽提供者

設定 ASP.NET 網站巡覽的安全性

設定資料存取的安全性

其他資源

裝載環境中 ASP.NET 應用程式的安全性