ASP.NET 2.0 引入 SiteMap 概念:以 XML 檔 (Web.sitemap) 定義邏輯階層結構,配合 Provider Model 可擴充至資料庫或自訂來源。導航控制項透過 SiteMapDataSource 讀取結構並呈現。
| 控制項 | 功能 | 典型用法 |
|---|---|---|
SiteMapPath | 麵包屑路徑 | 首頁 > 產品 > 筆記型電腦 |
TreeView | 可展摺樹狀結構 | 左側完整站點地圖 |
Menu | 水平/垂直選單 | 頂級導覽列 + 子選單 |
SiteMapDataSource | 資料來源橋接器 | 供 TreeView/Menu 繫結 |
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode url="~/Default.aspx" title="首頁" description="網站首頁">
<siteMapNode url="~/Products.aspx" title="產品" >
<siteMapNode url="~/Laptops.aspx" title="筆記型電腦" />
<siteMapNode url="~/Phones.aspx" title="手機" />
</siteMapNode>
<siteMapNode url="~/About.aspx" title="關於我們" />
</siteMapNode>
</siteMap>
設定 securityTrimmingEnabled="true" (預設),SiteMap 會依據使用者角色 (roles 屬性) 自動隱藏無權限節點,導航控制項同步反映。
繼承 StaticSiteMapProvider,覆寫 BuildSiteMap() 從資料庫/快取動態建構 SiteMapNode 樹狀結構,於 web.config 註冊替換預設 Provider。