SiteMap Klasse

Definition

Die SiteMap-Klasse ist eine im Speicher befindliche Darstellung der Navigationsstruktur einer Site, die von einem oder mehreren Siteübersichtsanbietern bereitgestellt wird. Diese Klasse kann nicht vererbt werden.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
Vererbung
SiteMap

Beispiele

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie sie einen Siteübersichtsanbieter in einer Web.config-Datei deklarieren. Im zweiten Codebeispiel wird die Verwendung eines SiteMap -Objekts veranschaulicht.

Das folgende Codebeispiel ist ein Web.config Konfigurationsabschnitt, der veranschaulicht, wie ein XmlSiteMapProvider Objekt als Standardobjekt SiteMapProvider deklariert wird.

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

Im folgenden Codebeispiel wird veranschaulicht, wie Sie das SiteMap -Objekt verwenden, indem Sie auf seine statischen Member zugreifen, um Informationen zu den RootNode Eigenschaften und CurrentNode anzuzeigen. Vergleichen Sie es mit der Ausgabe, die SiteMapPath vom Steuerelement gerendert wird.

<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="Form1" runat="server">
      <asp:SiteMapPath
          runat="server"
        ID="SiteMapPath1"
        ShowToolTips="false"/>
    </form>
  </body>
</html>
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:SiteMapPath
            runat="server"
          ID="SiteMapPath1"
          ShowToolTips="false"/>

    </form>
  </body>
</html>

Hinweise

Websitezuordnungen werden in Verbindung mit den SiteMapDataSourceSteuerelementen , SiteMapPathund anderen Steuerelementen verwendet, um eine effektive Navigationsoberfläche zu rendern, über die Benutzer auf einer Website navigieren können. Ein SiteMap -Objekt ist eine Komponente der ASP.NET Websitenavigationsinfrastruktur, die Den Zugriff auf schreibgeschützte Websiteübersichtsinformationen für Seiten- und Steuerelemententwickler über Navigation und SiteMapDataSource Steuerelemente ermöglicht. Weitere Komponenten der ASP.NET Websitenavigationsinfrastruktur sind die SiteMapProvider Klassen und XmlSiteMapProvider , die Datei Web.sitemap und die verschiedenen Steuerelemente, die mit der SiteMap Klasse arbeiten, z. B. das SiteMapPath Steuerelement, um Inhalte und Menüs zu rendern.

Die SiteMap hat mehrere Funktionen:

  • Es stellt den Stammknoten der Websitenavigationshierarchie bereit (es kann nur einen Stammknoten geben).

  • Er identifiziert, welcher Siteübersichtsanbieter der Prinzipal oder der Standardanbieter ist.

  • Es verfolgt alle Anbieterobjekte nach, die zum Erstellen von SiteMapverwendet werden.

Grundsätzlich ist der SiteMap ein Container für eine hierarchische Auflistung von SiteMapNode Objekten. Die SiteMap Beziehungen zwischen den Knoten werden jedoch nicht beibehalten, sondern an die Siteübersichtsanbieter delegiert. Die SiteMap fungiert als Schnittstelle zu den Websitenavigationsinformationen (in Form von SiteMapNode Objekten), die von diesen Siteübersichtsanbietern gespeichert werden. Sie verfolgt die Anbieter, von denen aus sie auf Websitenavigationsdaten zugreifen kann, und macht ihre Providers Sammlung verfügbar. Ein Anbieter kann seine Siteübersichtsinformationen in beliebiger Weise speichern. Solange er die SiteMapProvider abstrakte Klasse erweitert, kann die SiteMap Klasse erfolgreich aus ihr initialisiert werden.

Der Standardanbieter für die SiteMap -Klasse ist die XmlSiteMapProvider -Klasse, die mit der XML-Konfigurationsdatei Web.sitemap funktioniert. Sie können jedoch Ihr eigenes SiteMapProvider Objekt schreiben und verwenden, um die Siteübersicht für Ihre Website zu initialisieren. Ein Beispiel für einen benutzerdefinierten Siteübersichtsanbieter finden Sie unter SiteMapProvider.

Es wird eine Standardkonfiguration der Siteübersicht angegeben, die die Konfiguration der Websitenavigation verwaltet. Sie können diese Konfiguration in der Web.config-Datei überschreiben, wenn Sie ihren eigenen Siteübersichtsanbieter schreiben möchten.

Die SiteMap -Klasse bietet nur statische Member für die Leistung und kann jederzeit über ein Webformular oder Webserversteuerelement auf eine bestimmte Website zugegriffen werden.

Eigenschaften

CurrentNode

Ruft ein SiteMapNode-Steuerelement ab, das die gerade angeforderte Seite darstellt.

Enabled

Ruft einen booleschen Wert ab, der angibt, ob ein Siteübersichtsanbieter in der Datei Web.config angegeben ist, und ob der Siteübersichtsanbieter aktiviert ist.

Provider

Ruft das SiteMapProvider-Standardobjekt für die aktuelle Siteübersicht ab.

Providers

Ruft eine schreibgeschützte Auflistung von genannten SiteMapProvider-Objekten ab, die der SiteMap-Klasse zur Verfügung stehen.

RootNode

Ruft ein SiteMapNode-Objekt ab, das die oberste Seite der Navigationsstruktur für die Site darstellt.

Ereignisse

SiteMapResolve

Tritt ein, wenn auf die CurrentNode-Eigenschaft zugegriffen wird.

Gilt für:

Weitere Informationen