首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 站點地圖與網站導航結構開發完整入門:Web.sitemap、SiteMapDataSource、導航控制項實作

     編輯:關於ASP.NET

ASP.NET 2.0 內建站點導航架構,以 XML 格式的 Web.sitemap 定義網站邏輯結構,搭配 SiteMapDataSource 資料源控制項與 TreeView、Menu、SiteMapPath 導航控制項,快速建構專業級網站導航體驗。

建立 Web.sitemap 步驟

  1. VS 2005 → 方案總管右鍵 → 「加入新項目」→ 選擇「站點地圖」→ 命名 Web.sitemap。
  2. 編寫 XML 結構定義網站階層。

Web.sitemap 完整範例

<?xml version="1.0" encoding="utf-8"?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
  <siteMapNode url="default.aspx" title="Home" description="My Web Site">
    <siteMapNode url="~/products/default.aspx" title="Products">
      <siteMapNode url="~/products/product1.aspx" title="First Product" />
      <siteMapNode url="~/products/product2.aspx" title="Second Product" />
    </siteMapNode>
    <siteMapNode url="~/services/default.aspx" title="Services">
      <siteMapNode url="~/services/service1.aspx" title="First Service" />
      <siteMapNode url="~/services/service2.aspx" title="Second Service" />
    </siteMapNode>
    <siteMapNode url="contact.aspx" title="Contact Us" />
  </siteMapNode>
</siteMap>

siteMapNode 四大核心屬性

屬性說明
title導航控制項顯示標題文字
url目標頁面相對 URL,支援 ~ 應用程式根目錄
description工具提示文字,滑鼠懸停顯示
roles授權角色清單(逗號分隔),配合安全性修剪自動隱藏無權限節點

三大導航控制項特色與適用場景

控制項呈現樣式典型用途
SiteMapPath麵包屑路徑頁面頂部:Home > Products > Product1
TreeView可摺疊階層樹狀側邊欄完整站點地圖
Menu水平/垂直動態選單頂部導覽列、側邊選單

宣告式繫結標準模式

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />

<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
  <NodeStyle Font-Names="Verdana" Font-Size="10pt" />
  <HoverNodeStyle Font-Underline="True" ForeColor="Red" />
</asp:TreeView>

<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"
    Orientation="Horizontal" StaticDisplayLevels="2" MaximumDynamicDisplayLevels="3">
  <StaticMenuStyle BackColor="#336699" />
  <StaticMenuItemStyle ForeColor="White" />
  <DynamicMenuStyle BackColor="White" />
</asp:Menu>

<asp:SiteMapPath ID="SiteMapPath1" runat="server" />

安全性修剪啟用

web.config 設定提供者 securityTrimmingEnabled="true":

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
  <providers>
    <add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider"
         siteMapFile="Web.sitemap" securityTrimmingEnabled="true" />
  </providers>
</siteMap>

導航控制項自動依據使用者角色與 <authorization> 規則過濾節點。

程式化動態導航

  • SiteMap.CurrentNode:目前頁面對應節點。
  • SiteMap.RootNode:根節點,遞迴走訪。
  • SiteMap.FindSiteMapNode(url):依 URL 查找。
  • SiteMapResolve 事件:動態修改節點屬性/URL。

最佳實務建議

  • 檔案副檔名 .sitemap 受 ASP.NET 保護防直接下載。
  • 大型網站拆分多站點地圖檔,配合多提供者區域管理。
  • 善用 roles 屬性聲明節點存取需求,避免硬式編碼。
  • 結合 SiteMapPath 提供麵包屑,增強使用者定向感。
  • 自訂屬性(如 icon、target)擴充導航呈現,配合 MenuItemDataBound / TreeNodeDataBound 事件套用。

站點導航架構將結構定義與呈現分離,讓開發者專注業務邏輯,輕鬆打造可維護、可擴充、安全整合的專業網站導航體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved