語言

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> 狀標籤組成。 與SiteMapProvider類別對場地地圖資料的結構施加XmlSiteMapProvider了兩個限制:

  • 根節點只能存在。

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

以下程式碼範例展示了一個可與 XmlSiteMapProvider.

<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 檔案中指定的提供者名稱非預設,但同時也設定為預設提供者,以取代預設 ASP.NET 設定中指定的 XmlSiteMapProvider。

Note

你可以更改網站導覽資料檔的名稱,但無法更改副檔名。 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>

建構函式

名稱 Description
XmlSiteMapProvider()

建立一個新的、未命名的類別實例 XmlSiteMapProvider 。

屬性

名稱 Description
CurrentNode

取得 SiteMapNode 代表當前請求頁面的物件。

CurrentNode

取得 SiteMapNode 代表當前請求頁面的物件。

(繼承來源 SiteMapProvider)
Description

取得簡短且易記的描述,適合顯示在系統管理工具或其他使用者介面中。

(繼承來源 ProviderBase)
EnableLocalization

取得或設定一個布林值,表示是否回傳屬性的局部化值 SiteMapNode 。

(繼承來源 SiteMapProvider)
Name

取得組態期間用來參考提供者的易記名稱。

(繼承來源 ProviderBase)
ParentProvider

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

(繼承來源 SiteMapProvider)
ResourceKey

取得或設定用於屬性在地化 SiteMapNode 的資源鍵。

(繼承來源 SiteMapProvider)
RootNode

取得網站地圖的根節點。

RootProvider

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

(繼承來源 SiteMapProvider)
SecurityTrimmingEnabled

會獲得一個布林值,指示網站地圖提供者是否根據使用者角色過濾網站地圖節點。

(繼承來源 SiteMapProvider)

方法

名稱 Description
AddNode(SiteMapNode, SiteMapNode)

將 SiteMapNode 物件加入由目前提供者維護的集合中。

AddNode(SiteMapNode)

將 SiteMapNode 物件加入節點集合,由網站地圖提供者維護。

(繼承來源 SiteMapProvider)
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 代表指定網址頁面的物件。

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)

事件

名稱 Description
SiteMapResolve

當 CurrentNode 物業被叫回時發生。

(繼承來源 SiteMapProvider)

適用於

另請參閱