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, который представляет страницу верхнего уровня структуры переходов веб-узла, в противном случае — значение 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 .