共用方式為


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

更新:2007 年 11 月

根據預設,ASP.NET 站台巡覽會使用名為 Web.sitemap 的 XML 檔,這個檔案會描述網站的階層架構。但是,您可能想要使用多個網站導覽檔案或網站導覽提供者,描述整個網站的巡覽結構 (Navigation Structure)。

例如,您可以有參考子網站導覽的主網站導覽。主網站導覽可以是下列項目:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Home Page"  description="">
    <siteMapNode title="First Level 1"  description="" />
    <siteMapNode  title="First Level 2" description="">
      <siteMapNode  title="Second Level 1" description=""/>
      <siteMapNode  title="Second Level 2" description=""/>
    </siteMapNode>
    <siteMapNode siteMapFile="child.sitemap" />
  </siteMapNode>
</siteMap>

子網站導覽可以是下列項目:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Child First Level 1"  description="">
    <siteMapNode title="Child Second Level 1"  description="" />
    <siteMapNode  title="Child Second Level 2"  description="" />
    <siteMapNode  title=""  description="" />
  </siteMapNode>
</siteMap>

這兩個網站導覽產生的功能表看起來會像這樣:

Home Page
  First Level 1
  First Level 2
    Second Level 1
    Second Level 2
  Child First Level 1
    Child Second Level 1
    Child Second Level 2

若要對單一網站設定多個網站導覽,請由應用程式根目錄中的網站導覽開始。將根目錄提供者設定為 Web.config 檔案中的預設網站導覽提供者。接著,在 SiteMapNode 物件中參考子網站導覽或提供者以進行連結。

若要從父網站導覽連結至子網站導覽檔案

  • 從父網站導覽中,在您要顯示子網站導覽的巡覽結構 (Navigation Structure) 位置中建立 SiteMapNode

    舉例來說,如果您正在使用預設 XmlSiteMapProvider 類別,請將下列 SiteMapNode 加入至 Web.sitemap 檔案中的適當位置。

    <siteMapNode siteMapFile="MySiteMap.sitemap" />
    

    siteMapFile 屬性 (Attribute) 可為下列形式的其中一種:

    • 相對應用程式的參考,例如 ~/MySiteMap.sitemap。

    • 虛擬路徑,例如 /Customers/MySiteMap.sitemap。

    • 相對於目前網站導覽檔案位置的路徑參考,例如 Guests/MySiteMap.sitemap。

      注意事項:

      指定 siteMapFile 屬性 (Attribute) 時,請勿為 siteMapNode 項目提供 Url、title 或 description 屬性。

    如需建立網站導覽檔案的詳細資訊,請參閱 ASP.NET 網站導覽

若要從父網站導覽連結至自訂網站導覽提供者

  1. 從父網站導覽中,在您要顯示子網站導覽的巡覽結構 (Navigation Structure) 位置中建立 SiteMapNode

    舉例來說,如果您正在使用預設 XmlSiteMapProvider 類別,請開啟 Web.sitemap 檔案,並在階層架構中的適當位置加入下列 SiteMapNode

    <siteMapNode provider="SimpleTextSiteMapProvider" />
    
    注意事項:

    provider 屬性 (Attribute) 對應至 Web.config 檔案中提供者的 name 屬性 (Attribute)。

  2. 使用 add 項目,將自訂網站導覽提供者加入至 Web.config 檔案

    下列程式碼會加入名為 SimpleTextSiteMapProvider 的自訂提供者,但仍將 XmlSiteMapProvider 當做預設網站導覽提供者。

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
          <providers>
            <add
              name="SimpleTextSiteMapProvider"
          type="Samples.AspNet.SimpleTextSiteMapProvider,Samples.AspNet"
              siteMapFile = "siteMap.txt" />
          </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    如需建立自訂網站導覽提供者的詳細資訊,請參閱實作 ASP.NET 網站導覽提供者

在 Web.config 檔案中設定多個網站導覽

如前面範例所示將網站導覽連結起來,可讓您從許多片段中產生單一網站導覽結構。此外,您可以在 Web.config 檔案中加入對不同網站導覽的參考,讓這些網站導覽看起來像是不同的提供者。當網站的不同區域需要不同的巡覽結構時,這樣將很有幫助。

若要在 Web.config 檔案中設定多個網站導覽

  • 在 Web.config 檔案中尋找 siteMap 區段,然後為每個網站導覽建立 add 項目。

    下列範例顯示如何加入兩個網站導覽。

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
         <providers>
           <add          name="Company1SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company1/Company1.sitemap" />       <add          name="Company2SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company2/Company2.sitemap" />
         </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    使用此設定時,您可以使用 ~/Company1/Company1.sitemap 與 ~/Company2/Company2.sitemap 檔案搭配巡覽 API 成員以及巡覽控制項,例如 SiteMapPathTreeViewMenu。若要這樣做,您必須將相關的 SiteMapProvider 屬性設定為 Company1SiteMap 或 Company2SiteMap。

    如需將巡覽控制項加入至網頁的詳細資訊,請參閱 HOW TO:加入簡單的網站巡覽

請參閱

工作

HOW TO:加入簡單的網站巡覽

概念

ASP.NET 網站導覽

ASP.NET 網站巡覽提供者

ASP.NET 網站導覽安全性調整

實作 ASP.NET 網站導覽提供者

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

設定資料存取的安全性

其他資源

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