0 di 1 hanno valutato il contenuto utile: - Valuta questo argomento

Classe SiteMap

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)

public static class SiteMap
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.

ArgomentoPercorso
Procedura: enumerare i nodi della mappa del sito a livello di codiceGenerazione di applicazioni Web ASP.NET
Procedura: filtrare i nodi recuperati dai controlli server Web SiteMapDataSourceGenerazione di applicazioni Web ASP.NET
Procedura: configurare più mappe del sito e provider di mappa del sitoGenerazione di applicazioni Web ASP.NET
Procedura: visualizzare i dati della mappa del sito in controlli server Web non gerarchiciGenerazione di applicazioni Web ASP.NET
Procedura: aggiungere l'esplorazione semplice di sitiGenerazione di applicazioni Web ASP.NET
Procedura: implementare i provider della mappa del sito ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: enumerare i nodi della mappa del sito a livello di codiceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: configurare più mappe del sito e provider di mappa del sitoCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: filtrare i nodi recuperati dai controlli server Web SiteMapDataSourceCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: visualizzare i dati della mappa del sito in controlli server Web non gerarchiciCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: aggiungere l'esplorazione semplice di sitiCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: implementare i provider della mappa del sito ASP.NETCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: aggiungere la navigazione semplice di sitidv_vwdcon

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="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>

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.

.NET Framework

Supportato in: 2.0
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
© 2013 Microsoft. Tutti i diritti riservati.