XmlSiteMapProvider.BuildSiteMap Metoda

Definice

Načte informace o mapě webu ze souboru XML a sestaví je v paměti.

public:
 override System::Web::SiteMapNode ^ BuildSiteMap();
public override System.Web.SiteMapNode BuildSiteMap();
override this.BuildSiteMap : unit -> System.Web.SiteMapNode
Public Overrides Function BuildSiteMap () As SiteMapNode

Návraty

Vrátí kořen SiteMapNode navigační struktury mapy webu.

Výjimky

Nebyl XmlSiteMapProvider správně inicializován.

nebo

Parsuje siteMapFile se pro to <siteMapNode> , co není jedinečné.

nebo

Soubor určený souborem siteMapFile nemá příponu názvu souboru .mapa webu.

nebo

Soubor určený pro danou siteMapFile složku neexistuje.

nebo

Zprostředkovatel nakonfigurovaný v provider kořenovém <siteMapNode> uzlu s hodnotou null.

Zadaná siteMapFile , ale cesta leží mimo aktuální adresářovou strukturu aplikace.

Při načítání konfiguračního souboru došlo k chybě.

nebo

Horní prvek konfiguračního souboru není named <siteMap>.

nebo

V konfiguračním souboru existuje více než jeden horní uzel.

nebo

Dítě má <siteMap> jiné jméno než <siteMapNode>.

nebo

Neočekávaný atribut je analyzován pro <siteMapNode>.

nebo

Dílčí prvky jsou vnořené pod místem <siteMapNode> , kde je nastavena provider .

nebo

Hodnota roles<siteMapNode> obsahující znaky, které nejsou platné.

nebo

Parsuje url se pro to <siteMapNode> , co není jedinečné.

nebo

Byla SiteMapNode zjištěna duplicitní hodnota pro Key.

nebo

Hodnota ResourceKey nebo Title byla zadána u atributu SiteMapNode definovaného custom pro uzel explicitní výraz prostředku.

nebo

Explicitní výraz prostředku byl použit buď u atributu Title nebo Descriptioncustom atributu, SiteMapNode ale explicitní informace nebyly platné.

nebo

Při analýze Url objektu SiteMapNode.

Pojmenovaný zprostředkovatel nebyl nalezen v aktuální kolekci zprostředkovatelů mapy webu.

<siteMapNode> Odkazující soubor mapy webu obsahuje prázdný řetězec pro siteMapFile.

A siteMapFile z <siteMapNode> fyzické cesty.

nebo

Při pokusu o parsování virtuální cesty k souboru zadanému v souboru siteMapFiledošlo k chybě.

Příklady

Následující příklad kódu ukazuje, jak vytvořit novou instanci XmlSiteMapProvider třídy a inicializovat ji k sestavení mapy webu z dat XML.

<%@ Page Language="c#" %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <SCRIPT runat="server">
 private void Page_Load(object sender, System.EventArgs e)
 {
     // Create an instance of the XmlSiteMapProvider class.
     XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();
     NameValueCollection providerAttributes = new NameValueCollection(1);
     providerAttributes.Add("siteMapFile","test.sitemap");
     // Initialize the provider with a provider name and file name.
     testXmlProvider.Initialize("testProvider", providerAttributes);

     // The BuildSiteMap method is implicitly called when the
     // RootNode property is accessed.

     // Prints "/myvirtualdirectory/WebForm1.aspx"
     Response.Write(testXmlProvider.RootNode.Url + "<BR>");
     // Prints "/myvirtualdirectory/WebForm2.aspx"
     Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");
 }

Předchozí příklad kódu používá soubor XML umístěný ve virtuálním kořenovém adresáři aplikace ASP.NET. Soubor má následující formát:

<siteMap>
     <siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">
         <siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>
     </siteMapNode>
 </siteMap>

Poznámky

Volá se BuildSiteMap metoda pro načtení a sestavení mapy webu z trvalého úložiště.

Výchozí chování při ořezávání zabezpečení je povoleno, viz "Poznámky" v IsAccessibleToUser.

Po analýze XmlSiteMapProvider a načtení dat mapy webu se všechny načtené SiteMapNode objekty a SiteMapNodeCollection kolekce vytvoří jen pro čtení. Když parsuje XmlSiteMapProviderUrl vlastnost ze souboru mapy webu, převede adresy URL relativní vzhledem k aplikaci a také relativní adresy URL na absolutní virtuální cesty aplikace.

Přihlásí XmlSiteMapProvider se k odběru oznámení o změnách souborů pro soubor .mapa webu. Pokud se v souboru .mapa webu provede nějaká změna, znovu se XmlSiteMapProvider načte a struktura mapy webu se znovu sestaví.

Platí pro

Viz také