Nota: questa classe è stata introdotta con .NET Framework versione 2.0.
La classe
SiteMap è una rappresentazione in memoria della struttura di spostamento in un sito, fornita da uno o più provider della mappa del sito. Questa classe non può essere ereditata.
Spazio dei nomi: System.Web
Assembly: System.Web (in system.web.dll)
Visual Basic - (Dichiarazione)
Public NotInheritable Class SiteMap
È possibile accedere direttamente ai membri di una classe Static senza un'istanza della classe.
public static class SiteMap
public ref class SiteMap abstract sealed
public final class SiteMap
public final class SiteMap
Le mappe del sito sono utilizzate unitamente a SiteMapDataSource, SiteMapPath e ad altri controlli per effettuare il rendering di un'interfaccia effettiva di spostamento per utenti perché si spostino in un sito Web. Un oggetto SiteMap è un componente dell'infrastruttura di spostamento nel sito ASP.NET che fornisce accesso alle informazioni in sola lettura sulla mappa del sito per gli sviluppatori di pagine e di controlli, utilizzando i controlli SiteMapDataSource e di spostamento. Altri componenti dell'infrastruttura includono le classi SiteMapProvider e XmlSiteMapProvider, il file Web.sitemap e vari controlli che utilizzano la classe SiteMap, ad esempio il controllo SiteMapPath, per effettuare il rendering dei contenuti e dei menu.
La classe SiteMap dispone di diverse funzioni:
-
Fornisce il nodo principale della gerarchia di spostamento nel sito (può esistere un unico nodo principale).
-
Identifica quale provider di mappa del sito è quello principale o predefinito.
-
Tiene traccia di tutti gli oggetti provider utilizzati per creare la classe SiteMap.
Sostanzialmente, la classe SiteMap è un contenitore di un insieme gerarchico di oggetti SiteMapNode. Tuttavia SiteMap non mantiene relazioni tra i nodi, piuttosto delega questa funzione ai provider della mappa del sito. La classe SiteMap svolge la funzione di interfaccia alle informazioni sullo spostamento nel sito (come oggetti SiteMapNode) contenute nei provider della mappa del sito. Tiene traccia dei provider dai quali è possibile accedere ai dati di spostamento nel sito ed espone il relativo insieme Providers. Un provider può memorizzare le relative informazioni sulla mappa del sito in qualsiasi modo purché estenda la classe astratta SiteMapProvider; da tale classe può essere inizializzata con esito positivo la classe SiteMap.
Il provider predefinito della classe SiteMap è la classe XmlSiteMapProvider che utilizza un file di configurazione XML ovvero Web.sitemap. È tuttavia possibile scrivere il proprio oggetto SiteMapProvider e utilizzarlo per inizializzare la mappa del sito per il proprio sito. Per un esempio di un provider della mappa del sito personalizzato, vedere SiteMapProvider.
Viene specificata una configurazione della mappa del sito predefinita che gestisce la configurazione di spostamento nel sito. È possibile sottoporre a override questa configurazione nel file Web.config, se si sceglie di scrivere il proprio provider della mappa del sito.
La classe SiteMap offre solo membri statici per le prestazioni e l'accesso è possibile in qualsiasi momento in un determinato sito mediante un Web Form o un controllo server Web.
In questa sezione sono contenuti due esempi di codice. Nel primo esempio di codice viene illustrato come dichiarare un provider della mappa del sito in un file Web.config. Nel secondo esempio di codice viene illustrato come utilizzare un oggetto SiteMap.
Nell'esempio di codice riportato di seguito viene indicata una sezione della configurazione del file Web.config che illustra come un oggetto XmlSiteMapProvider viene dichiarato come oggetto SiteMapProvider predefinito.
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare l'oggetto SiteMap mediante l'accesso ai relativi membri statici, per visualizzare le informazioni sulle proprietà RootNode e CurrentNode . Confrontarlo all'output sul quale viene effettuato il rendering mediante il controllo SiteMapPath.
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<Script RUNAT="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<BR>")
Response.Write("<FONT COLOR='red'>" & SiteMap.CurrentNode.Url & "</FONT><BR>")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<BR>")
End While
End If
Response.Write("<HR>")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<BR>")
Response.Write(SiteMap.RootNode.Url & "<BR>")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<BR>")
End While
End If
End Sub ' Page_Load
</Script>
<HTML>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</HTML>
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<Script RUNAT="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<BR>");
Response.Write("<FONT COLOR='red'>" + SiteMap.CurrentNode.Url + "</FONT><BR>");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<BR>");
}
}
Response.Write("<HR>");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<BR>");
Response.Write(SiteMap.RootNode.Url + "<BR>");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<BR>");
}
}
}
</Script>
<HTML>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</HTML>
Protezione .NET Framework
Gerarchia di ereditarietà
System.Object
System.Web.SiteMap
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Informazioni sulla versione
.NET Framework
Supportato in: 2.0