XmlSiteMapProvider 類別

定義

XmlSiteMapProvider 類別衍生自 SiteMapProvider 類別,而且是 ASP.NET 的預設網站地圖提供者。 XmlSiteMapProvider 類別會從副檔名為 .sitemap 的 XML 檔案產生網站地圖樹狀結構。

public ref class XmlSiteMapProvider : System::Web::StaticSiteMapProvider, IDisposable
public class XmlSiteMapProvider : System.Web.StaticSiteMapProvider, IDisposable
type XmlSiteMapProvider = class
    inherit StaticSiteMapProvider
    interface IDisposable
Public Class XmlSiteMapProvider
Inherits StaticSiteMapProvider
Implements IDisposable
繼承
實作

備註

類別 XmlSiteMapProvider 會從遵循已知架構的 XML 檔案載入網站地圖資料。 網站地圖資料是由 <siteMap> 標記所系結,並由巢狀卷 <siteMapNode> 標所組成。 網站地圖資料結構上的 SiteMapProviderXmlSiteMapProvider 類別會加總兩個條件約束:

  • 只有一個根節點可以存在。

  • 對於 SiteMapNode 指定 URL 的物件,URL 在提供者的範圍內必須是唯一的。 (對於未指定 URL 的節點,所有索引鍵都必須是唯一的。)

下列程式碼範例示範可與 搭配 XmlSiteMapProvider 使用的 XML 檔案範例。

<siteMap>  
  <siteMapNode title="RootNode" description="This is the root node of the site map. There can be only one root node." url="Page1.aspx" >  
    <siteMapNode title="ChildofRootNode" description="Descriptions do not have to be unique." url="Page2.aspx">  
      <siteMapNode title="ChildOfChildNode" description="SiteMapNode objects can be nested to any level." url="Page3.aspx"/>  
    </siteMapNode>  
    <siteMapNode title="ChildofRootNode" description="Descriptions do not have to be unique." url="Page4.aspx"/>  
  </siteMapNode>  
</siteMap>  

XmlSiteMapProvider是 ASP.NET 的預設提供者,它會從位於 ASP.NET 應用程式目錄結構內的名為 Web.sitemap 的檔案讀取 XML 資料。 根據預設,Web.sitemap 檔案位於應用程式根目錄;不過,如果您想要變更載入資料的檔案 XmlSiteMapProvider 名稱或位置,則可以覆寫Web.config檔案中的預設組態。 藉由覆寫Web.config檔案中的預設組態設定,您可以視需要針對每個 ASP.NET 應用程式量身打造 的行為 XmlSiteMapProvider

下列程式碼範例示範Web.config檔案的範例,其中 XmlSiteMapProvider 仍使用 ,但使用不同的網站地圖檔案。 由於 物件中的所有提供者都必須以唯一 SiteMapProviderCollection 方式命名,所以Web.config檔案中指定的提供者會使用預設以外的名稱,但也會設定為預設提供者,以便使用它,而不是 XmlSiteMapProvider 預設 ASP.NET 組態中指定的 。

注意

您可以變更網站導覽資料檔案的名稱,但無法變更其副檔名。 只會 XmlSiteMapProvider 從副檔名為 .sitemap 的檔案讀取資料。

<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">  
  <providers>  
    <add name="MyXmlSiteMapProvider"  
      description="SiteMap provider that reads in .sitemap files."  
      type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  
      siteMapFile="CustomWeb.sitemap" />  
  </providers>  
</siteMap>  

建構函式

XmlSiteMapProvider()

建立 XmlSiteMapProvider 類別的未命名新執行個體。

屬性

CurrentNode

取得代表目前所要求頁面的 SiteMapNode 物件。

CurrentNode

取得代表目前所要求頁面的 SiteMapNode 物件。

(繼承來源 SiteMapProvider)
Description

取得簡短、易讀的描述,適合顯示在管理工具或其他使用者介面 (UI) 中。

(繼承來源 ProviderBase)
EnableLocalization

取得或設定布林值,指出是否傳回 SiteMapNode 屬性的當地語系化值。

(繼承來源 SiteMapProvider)
Name

取得用來在設定期間代表提供者的易記名稱。

(繼承來源 ProviderBase)
ParentProvider

取得或設定目前提供者的父代 SiteMapProvider 物件。

(繼承來源 SiteMapProvider)
ResourceKey

取得或設定用來當地語系化 SiteMapNode 屬性的資源索引鍵。

(繼承來源 SiteMapProvider)
RootNode

取得網站地圖的根節點。

RootProvider

取得目前提供者階層架構中的根 SiteMapProvider 物件。

(繼承來源 SiteMapProvider)
SecurityTrimmingEnabled

取得布林值,指出網站導覽提供者是否根據使用者的角色篩選網站導覽節點。

(繼承來源 SiteMapProvider)

方法

AddNode(SiteMapNode)

SiteMapNode 物件加入至網站導覽提供者所維護的節點集合。

(繼承來源 SiteMapProvider)
AddNode(SiteMapNode, SiteMapNode)

SiteMapNode 物件新增至目前提供者所維護的集合中。

AddProvider(String, SiteMapNode)

將子網站地圖提供者連結至目前的提供者。

BuildSiteMap()

從 XML 檔案載入網站地圖資訊,並將其建置在記憶體中。

Clear()

移除子系和父代網站地圖節點及網站地圖提供者集合中的所有項目;XmlSiteMapProvider 物件會在內部追蹤其狀態時一併追蹤這些集合。

Dispose()

告知 Web.sitemap 檔的檔案監視器,XmlSiteMapProvider 物件不再需要監視該檔案。

Dispose(Boolean)

告知 Web.sitemap 檔的檔案監視器,XmlSiteMapProvider 物件不再需要監視該檔案。 Dispose(Boolean) 方法會使用布林參數,指出方法是否由使用者程式碼呼叫。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindSiteMapNode(HttpContext)

使用指定的 SiteMapNode 物件,擷取表示目前所要求之網頁的 HttpContext 物件。

(繼承來源 SiteMapProvider)
FindSiteMapNode(String)

擷取 SiteMapNode 物件,其代表位於指定 URL 的頁面。

FindSiteMapNodeFromKey(String)

根據指定的索引鍵,擷取 SiteMapNode 物件。

GetChildNodes(SiteMapNode)

傳回網站地圖的子節點。

GetChildNodes(SiteMapNode)

擷取特定 SiteMapNode 物件的子系網站導覽節點。

(繼承來源 StaticSiteMapProvider)
GetCurrentNodeAndHintAncestorNodes(Int32)

當擷取目前所要求之網頁的節點,以及擷取目前網頁的父代和祖系網站導覽節點時,提供網站導覽提供者的最佳化查閱方法。

(繼承來源 SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

當擷取目前所要求之網頁的節點,以及擷取目前節點附近的網站導覽節點時,提供網站導覽提供者的最佳化查閱方法。

(繼承來源 SiteMapProvider)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetParentNode(SiteMapNode)

傳回網站地圖的父代節點。

GetParentNode(SiteMapNode)

擷取特定 SiteMapNode 物件的父代網站導覽節點。

(繼承來源 StaticSiteMapProvider)
GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

當擷取目前所要求之網頁的祖系節點,以及擷取祖系的子代節點時,提供網站導覽提供者的最佳化查閱方法。

(繼承來源 SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

當擷取指定 SiteMapNode 物件的祖系節點,以及擷取其子節點時,提供網站導覽提供者的最佳化查閱方法。

(繼承來源 SiteMapProvider)
GetRootNodeCore()

擷取目前網站地圖資料結構的最上層節點。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HintAncestorNodes(SiteMapNode, Int32)

提供方法,讓網站導覽提供者可以覆寫,以最佳化方式擷取相對於指定 SiteMapNode 物件的一或多個層級之父代和祖系節點。

(繼承來源 SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

提供方法,讓網站導覽提供者可以覆寫,以最佳化方式擷取指定節點附近找到的節點。

(繼承來源 SiteMapProvider)
Initialize(String, NameValueCollection)

初始化 XmlSiteMapProvider 物件。 Initialize(String, NameValueCollection) 方法不會實際建置網站地圖,而只會準備 XmlSiteMapProvider 的狀態以執行這項作業。

IsAccessibleToUser(HttpContext, SiteMapNode)

擷取布林值,指出在指定內容中使用者是否可以檢視指定的 SiteMapNode 物件。

(繼承來源 SiteMapProvider)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
RemoveNode(SiteMapNode)

從提供者追蹤的所有節點集合中,移除指定的 SiteMapNode 物件。

RemoveProvider(String)

從目前提供者的階層架構,移除連結的子網站地圖提供者。

ResolveSiteMapNode(HttpContext)

引發 SiteMapResolve 事件。

(繼承來源 SiteMapProvider)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

事件

SiteMapResolve

呼叫 CurrentNode 屬性時發生。

(繼承來源 SiteMapProvider)

適用於

另請參閱