SiteMapNode Constructor (SiteMapProvider, String, String, String)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title, and the site map provider that manages the node.

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

public SiteMapNode(
	SiteMapProvider provider,
	string key,
	string url,
	string title


Type: System.Web.SiteMapProvider

The SiteMapProvider with which the node is associated.

Type: System.String

A provider-specific lookup key.

Type: System.String

The URL of the page that the node represents within the site.

Type: System.String

A label for the node, often displayed by navigation controls.

Exception Condition

SiteMapProvider is null.

- or -

key is null.

The XmlSiteMapProvider class, which is the default SiteMapProvider provider implementation for ASP.NET, uses the SiteMapNode.Url property as a lookup key, if one is provided for the node (if a URL is not provided, a tracking identifier is generated for the node). Therefore, any SiteMapNode object that provides a URL and is used by the XmlSiteMapProvider must have a unique URL within the scope of the provider.

If no title is provided, calls to the Title property return the String.Empty field.

The following code example demonstrates how to use the SiteMapNode constructor to create a new instance of the SiteMapNode class. The node is initialized with values from a Microsoft Access database row.

This code example is part of a larger example provided for the BuildSiteMap method.

OleDbCommand rootNodeCommand =
    new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

if(rootNodeReader.HasRows) {
    rootNodeId = rootNodeReader.GetInt32(0);
    // Create a SiteMapNode that references the current StaticSiteMapProvider.
    rootNode   = new SiteMapNode(this,

else return null;


.NET Framework
Available since 2.0
Return to top