SiteMap.RootNode Свойство

Определение

Возвращает объект SiteMapNode, который представляет страницу верхнего уровня структуры переходов веб-узла.

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

Значение свойства

SiteMapNode

Объект SiteMapNode, который представляет страницу верхнего уровня структуры переходов веб-узла, в противном случае — значение null, если включена фильтрация по ролям безопасности и данный узел не может быть предоставлен текущему пользователю.

Исключения

Функция карты веб-узла не разрешена.

-или- Свойство RootNode представляется значением null, если включена фильтрация по ролям безопасности и корневой узел не видим текущему пользователю.

Используемый по умолчанию поставщик, указанный в конфигурации, не существует.

Данное средство поддерживается только при выполнении с низким уровнем доверия или более высоким уровнем доверия.

Примеры

В следующем примере кода показано, как использовать RootNode свойство для получения SiteMapNode объекта, представляющего корневой узел сайта, независимо от текущего расположения в иерархии страниц.

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

Комментарии

Класс SiteMap извлекает RootNode свойство, запрашивая его у поставщика. Если иерархия поставщиков существует, SiteMap класс извлекает корневой узел корневого поставщика в иерархии. Чтобы получить доступ к корневому узлу поставщика по умолчанию, вызовите Provider свойство, которое извлекает поставщика по умолчанию и его RootNode свойство.

Объект XmlSiteMapProvider , который является поставщиком по умолчанию для SiteMap класса, поддерживает только один RootNode.

Если вы реализуете собственный SiteMapProvider класс и переопределяете абстрактное RootNode свойство, необходимо предоставить собственную реализацию для отслеживания RootNode свойства экземпляра SiteMapNode .

Корневой узел должен быть виден для всех пользователей по проектированию. Если корневой узел не виден всем пользователям при включенной обрезке безопасности, доступ к свойству RootNode может привести к исключению InvalidOperationException .

Применяется к

См. также раздел