一旦定義了站點地圖,就可以創建站點的導航用戶接口。在Amazon.com站點,主頁面在頁面左邊列出到各個分部分的超級鏈接。進入到一特定部分之后,在左邊將顯示該部分的子部分信息。然而,也可以使用另外的導航用戶接口:你可能有一個樹來顯示各個部分和子部分,或用一個菜單作頂級菜單項來列舉如書籍,電子產品,DVD,等等;而每個菜單項的子菜單又包含各個部分的子部分。
在ASP.NET 2.0以前,開發者典型地自己解決他們的站點導航功能.然而,ASP.NET 2.0使得定義一站點的結構并且使用普通導航用戶接口元素實現它輕松極了。在本文中,我們將分析一下ASP.NET 2.0的站點導航特征。
二、 ASP.NET 1.x時代的站點導航
ASP.NET 版本1.x確實沒有提供任何內置的站點導航支持;因此,大多數開發者實現他們自己的站點導航功能。在創建他們自己的站點導航功能時,開發者面臨兩個挑戰:
1. 決定怎樣把站點的結構信息串行化到一張站點地圖中
2. 實現導航用戶接口元素
為解決第一個問題,開發者們需要決定如何建模該站點的結構。要把這些信息放置到一個XML文件呢?還是添加一數據庫表來存儲站點的各個部分及其聯系方式?對于支持用戶帳戶的站點,可能有只對屬于特別角色的用戶是可存取的部分。而且,支持多種語言的站點某種程度上都需要提供針對各個站點部分的翻譯。
在決定需要存儲什么信息來描述站點的結構以及這些信息怎樣被串行化(數據庫?XML文件?另外的東西?)以后,開發者還要面對第二個挑戰-怎樣向用戶顯示這個站點的結構。一個常用的導航用戶接口元素是菜單;然而,ASP.NET 1.x中并沒有提供內置的菜單Web控件-這意味著開發者要自己花錢購買或自己構建。
讓我們總結一下,在ASP.NET版本1.x中實現站點導航并不是多么困難的任務;但是,這是必須要做的另外一個任務。而且,既然沒有站點導航的內置支持,每個開發者可能會找到他自己的獨特方法,這提高了開發新手學習曲線的陡峭程度-他們必須學習定制站點導航邏輯。
三、 ASP.NET 2.0中的站點導航
在ASP.NET 2.0中實現站點導航輕而易舉,這歸功于構建站點導航特征。內部地,ASP.NET提供了一組可編程API-用它可以進行站點地圖查詢。ASP.NET不需要為指定站點地圖而提供特殊格式,盡管它確實提供了一種使用XML格式文件的缺省選擇。關于怎樣串行化站點地圖的細節是可以被定制的,因為ASP.NET 2.0的站點導航特征使用一種提供者模型。該提供者模型使開發者能夠定制一個特定ASP.NET分系統的內部實現-只要它們保持向前引用的API是相同的。
簡言之,你可以使用ASP.NET 2.0的缺省的基于XML的方法來指定你的網站的站點地圖,或僅加上一點編碼,你就能使用現有的定制方法,或其它一些方法。(本文將討論使用缺省的技術(基于XML和站點地圖);本系統的后一篇文章將分析怎樣定制站點導航提供者。)
除了提供一種可定制的手段來指定站點結構外,隨同ASP.NET 2.0一起發行的還有一些導航Web控件-它們使得顯示站點地圖就象拖放一個控件到你的ASP.NET頁面一樣容易:
1. SiteMapPath-顯示一個breadcrumb,用于顯示終端用戶處于相對于站點結構的具體位置。例如,在訪問Amazon.com站點的Novels部分時,一個breadcrumb顯示可能是這個樣子:Home>Books>Novels。
原文轉自:http://www.anti-gravitydesign.com