Esta documentación está archivada y no tiene mantenimiento.

SiteMap (Clase)

La clase SiteMap es una representación en memoria de la estructura de exploración de un sitio, proporcionada por uno o varios proveedores del mapa del sitio. Esta clase no se puede heredar.

Espacio de nombres: System.Web
Ensamblado: System.Web (en system.web.dll)

public static class SiteMap
public final class SiteMap
public final class SiteMap
No aplicable.

Los mapas del sitio se utilizan junto con SiteMapDataSource, SiteMapPath y otros controles para representar una interfaz de exploración eficaz para que los usuarios exploren un sitio Web. Un objeto SiteMap es un componente de la infraestructura de exploración del sitio de ASP.NET que proporciona acceso a información del mapa del sitio de sólo lectura para los desarrolladores de páginas y de controles que utilicen controles SiteMapDataSource y de exploración. Entre otros componentes de la infraestructura de exploración del sitio de ASP.NET se incluyen las clases SiteMapProvider y XmlSiteMapProvider, el archivo Web.sitemap y los distintos controles que funcionan con la clase SiteMap, como el control SiteMapPath, para representar el contenido y los menús.

SiteMap tiene varias funciones:

  • Proporciona el nodo raíz de la jerarquía de exploración del sitio (sólo puede haber un nodo raíz).

  • Identifica qué proveedor del mapa del sitio es el proveedor principal o predeterminado.

  • Realiza el seguimiento de todos los objetos de proveedor utilizados para crear SiteMap.

Fundamentalmente, SiteMap es un contenedor de una colección jerárquica de objetos SiteMapNode. Sin embargo, SiteMap no mantiene las relaciones entre los nodos, sino que delega esta función en los proveedores del mapa del sitio. SiteMap actúa como una interfaz para la información de exploración del sitio (en forma de objetos SiteMapNode) que estos proveedores del mapa del sitio almacenan. Realiza el seguimiento de los proveedores desde los que puede tener acceso a los datos de exploración del sitio y expone su colección de Providers. Un proveedor puede almacenar su información del mapa del sitio de cualquier forma; mientras extienda la clase abstracta SiteMapProvider, la clase SiteMap se puede inicializar correctamente desde él.

El proveedor predeterminado para la clase SiteMap es la clase XmlSiteMapProvider, que funciona con un archivo de configuración XML, Web.sitemap. Sin embargo, puede escribir su propio objeto SiteMapProvider y utilizarlo para inicializar el mapa del sitio para su sitio. Para obtener un ejemplo de proveedor del mapa del sitio personalizado, vea SiteMapProvider.

Se especifica una configuración del mapa del sitio predeterminada que administra la configuración de exploración del sitio. Puede reemplazar esta configuración en el archivo Web.config, si tuviera que escribir su propio proveedor del mapa del sitio.

Por cuestiones de rendimiento, la clase SiteMap sólo proporciona miembros estáticos, y se puede tener acceso a ella en cualquier momento en un sitio determinado desde un control de formulario Web Forms o un control de servidor Web.

TemaUbicación
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor webGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor WebGenerar aplicaciones Web ASP .NET
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor webGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio

Esta sección contiene dos ejemplos de código. En el primero se muestra cómo declarar un proveedor del mapa del sitio en un archivo Web.config. En el segundo, se muestra cómo se utiliza un objeto SiteMap.

El ejemplo de código siguiente es una sección de configuración de Web.config donde se declara un objeto XmlSiteMapProvider como objeto SiteMapProvider predeterminado.

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

En el ejemplo de código siguiente se muestra cómo utilizar el objeto SiteMap mediante el acceso a sus miembros estáticos para mostrar información sobre las propiedades RootNode y CurrentNode. Compárelo con el resultado representado por el control 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 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>

  • AspNetHostingPermission  para trabajar en un entorno alojado en host. Valor de la petición: LinkDemand; valor del permiso: Minimal.
  • AspNetHostingPermission  para trabajar en un entorno alojado en host. Valor de la petición: InheritanceDemand; valor del permiso: Minimal.

System.Object
  System.Web.SiteMap

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: