Compartir a través de


SiteMap.RootNode Propiedad

Definición

Obtiene un objeto SiteMapNode que representa la página de nivel superior de la estructura de navegación del sitio.

public:
 static property System::Web::SiteMapNode ^ RootNode { System::Web::SiteMapNode ^ get(); };
public static System.Web.SiteMapNode RootNode { get; }
static member RootNode : System.Web.SiteMapNode
Public Shared ReadOnly Property RootNode As SiteMapNode

Valor de propiedad

SiteMapNode que representa la página de nivel superior de la estructura de navegación del sitio; de lo contrario, null, si se habilita el recorte de seguridad y no se puede devolver el nodo al usuario actual.

Excepciones

La característica de mapa del sitio no está habilitada.

o bien

La propiedad RootNode se resuelve como null, lo que sucederá si se habilita un recorte de seguridad y el nodo raíz no está visible para el usuario actual.

El proveedor predeterminado especificado en la configuración no existe.

Sólo se admite esta característica cuando se ejecuta, como mínimo, con un nivel de confianza bajo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la RootNode propiedad para recuperar el SiteMapNode objeto que representa el nodo raíz del sitio, independientemente de la ubicación actual en la jerarquía de páginas.

<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>
<script runat="server">

Private Sub Page_Load(sender As Object, e As 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>

Comentarios

La SiteMap clase recupera la RootNode propiedad solicitándolo desde el proveedor. Si hay una jerarquía de proveedores, la SiteMap clase recupera el nodo raíz del proveedor raíz en la jerarquía. Para acceder al nodo raíz del proveedor predeterminado, llame a la Provider propiedad , que recupera tanto el proveedor predeterminado como su RootNode propiedad.

El XmlSiteMapProvider objeto , que es el proveedor predeterminado de la SiteMap clase , solo admite un RootNode.

Si implementa su propia SiteMapProvider clase e invalida la propiedad abstracta RootNode , debe proporcionar su propia implementación para realizar un seguimiento de la RootNode propiedad de la SiteMapNode instancia.

El nodo raíz debe ser visible para todos los usuarios, por diseño. Si el nodo raíz no está visible para todos los usuarios cuando se habilita el recorte de seguridad, el acceso a la RootNode propiedad podría dar lugar a una InvalidOperationException excepción.

Se aplica a

Consulte también