12.1 网站导航简介
一个网站往往会包含很多页面,而比较优秀的导航系统可以让用户很顺畅地在页面间进行穿梭。显然,使用ASP.NET控件工具包可以实现几乎所有的导航系统,但真正实现起来还是需要进行很多麻烦的工作,然而ASP.NET所具有的一系列导航特性能够显著地简化这些工作。
ASP.NET的导航是柔性的、可配置的并且是可插拔的,它主要包含三部分:
● 一种定义网站导航结构的方式,使用XML结构形式的网站地图文件来存储导航结构信息。
● 一种方便读取网站地图文件信息的方式,SiteMapDataSource控件和XmlSiteMapProvider控件来实现这个功能。
● 一种把网站地图信息显示在用户浏览器上的方式,并且能够让用户方式使用这个导航系统。可以使用绑定到SiteMapDataSource控件的导航控件来实现这个功能。
可以单独地扩展或自定义以上各个部分。例如,如果想要更改导航控件的外观,只需要把不同的控件绑定到SiteMapDataSource控件即可;如果想要从不同的类型或不同位置读取网站地图信息,只需要更改网站地图提供器即可。
ASP.NET 4.5提供了名为XmlSiteMapProvider的网站地图提供器,使用XmlSiteMapProvider可以从XML文件中获取网站地图信息。如果要从其他位置或从一个自定义的格式获取网站地图信息,就需要创建定制的网站地图提供器,或者寻找一个第三方解决方案。
XmlSiteMapProvider会从根目录中寻找名为Web.sitemap的文件来读取信息,它解析了Web.sitemap文件中的网站地图数据后创建一个网站地图对象,而这个网站地图对象能够被SiteMapDataSource所使用,而SiteMapDataSource可以被放置在页面的导航控件所使用,最后由导航控件把网站的导航信息显示在页面上。