This documentation is archived and is not being maintained.

SiteMap.RootNode Property

Gets a SiteMapNode object that represents the top-level page of the navigation structure for the site.

Namespace: System.Web
Assembly: System.Web (in system.web.dll)

public static SiteMapNode RootNode { get; }
/** @property */
public static SiteMapNode get_RootNode ()

public static function get RootNode () : SiteMapNode

Not applicable.

Property Value

A SiteMapNode that represents the top-level page of the site's navigation structure; otherwise, a null reference (Nothing in Visual Basic), if security trimming is enabled and the node cannot be returned to the current user.

Exception typeCondition

InvalidOperationException

The site map feature is not enabled.

- or -

The RootNode resolves to a null reference (Nothing in Visual Basic), which occurs if security trimming is enabled and the root node is not visible to the current user.

ConfigurationErrorsException

The default provider specified in the configuration does not exist.

HttpException

The feature is supported only when running in Low trust or higher.

The SiteMap class retrieves the RootNode property by requesting it from the provider. If there is a provider hierarchy, the SiteMap class retrieves the root node of the root provider in the hierarchy. To access the root node of the default provider, call the Provider property, which retrieves both the default provider and its RootNode property.

The XmlSiteMapProvider object, which is the default provider for the SiteMap class, supports only one RootNode.

If you implement your own SiteMapProvider class and override the abstract RootNode property, you must provide your own implementation to track the RootNode property of the SiteMapNode instance.

The root node must be visible to all users, by design. If the root node is not visible to all users when security trimming is enabled, accessing the RootNode property might result in an InvalidOperationException exception.

The following code example demonstrates how to use the RootNode property to retrieve the SiteMapNode object that represents the root node of the site, regardless of the current location in the page hierarchy.

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

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0
Show: