ASP.NET 2.0 導航系統雖方便,但需手工編寫 web.sitemap,語法雖簡單(巢狀 siteMapNode),稍微複雜的結構極易出錯,維護更是噩夢。
<siteMap>
<siteMapNode title="Home" url="~/default.aspx">
<siteMapNode title="Introduction to ASP.NET" url="~/introduction/default.aspx">
<siteMapNode title="What's New in Whidbey?" url="~/introduction/whatsnew.aspx"/>
<siteMapNode title="Sample Applications" url="~/introduction/starterkits.aspx"/>
</siteMapNode>
<siteMapNode title="Building A Web Application" url="~/development/default.aspx">
<!-- 更多巢狀節點 -->
</siteMapNode>
</siteMapNode>
</siteMap>
標籤開閉巢狀對人類極不友善,但電腦處理這類結構卻得心應手。解決方案:編寫一個元件,自動掃描專案目錄結構,動態生成導航資料。
bin 目錄Menu、TreeView)設定資料來源指向該 DLLApp_*、bin 等系統目錄web.config 設定排除特定目錄這個方案將導航維護從「手工編寫 XML」轉變為「管理實體檔案結構」,極大降低維護成本與出錯機率。