Share via


SiteMap.RootNode 屬性

定義

取得 SiteMapNode 物件,表示網站巡覽結構最上層網頁。

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

屬性值

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>

備註

類別 SiteMapRootNode 藉由向提供者要求屬性來擷取屬性。 如果有提供者階層,類別會 SiteMap 擷取階層中根提供者的根節點。 若要存取預設提供者的根節點,請呼叫 Provider 屬性,以擷取預設提供者及其 RootNode 屬性。

XmlSiteMapProvider物件是 類別的預設提供者 SiteMap ,只支援一個 RootNode

如果您實作自己的 SiteMapProvider 類別並覆寫抽象 RootNode 屬性,則必須提供自己的實作來追蹤 RootNode 實例的 SiteMapNode 屬性。

根據設計,所有使用者都必須看見根節點。 如果啟用安全性調整時所有使用者看不到根節點,存取 RootNode 屬性可能會導致 InvalidOperationException 例外狀況。

適用於

另請參閱