站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局。默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息。
站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节。你可以使用API来编程访问应用程序的导航节点。
导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图、菜单和breadcrumb("面包屑",一种显示当前所在页面的控件)。这些控件利用ASP.NET 2.0中的站点导航服务来检索你给站点定义的结构。SiteMapDataSource控件还允许你把其它UI控件绑定到站点导航数据。
网站经常需要显示导航数据,来指导用户如何使用站点。ASP.NET中的导航特性允许开发者简单地定义导航数据,并根据这些信息来显示UI。
站点导航API是一种用于访问站点导航数据的基于提供程序(provider)的编程内容。该API把导航数据存储在XML文件中,并通过一组SiteMapNode类来暴露这些数据。应用程序和控件开发者可以构建SiteMapNode实例并使用这些信息来显示导航界面。
面向导航的服务器控件包括Menu、TreeView、SiteMapPath和SiteMapDataSource控件。这些控件都是建立在站点导航类的顶端的,它们使用和显示导航数据的时候都是不考虑数据存储的特定细节问题的。Menu和TreeView控件还可以使用XML文件的数据和XMLDataSource控件的数据。
Url映射特性允许开发者为不同URL请求的重映射(re-mapping)定义简单的规则。
使用站点导航控件
Menu、TreeView、SiteMapPath和SiteMapDataSource控件根据导航数据生成导航界面。导航数据可以存储在XML文件中,或者利用站点导航特性的基于提供程序的能力来保存。下面的例子演示了如何组合使用站点导航特性的不同控件。
建立应用程序站点地图
示例的导航结构存放在Web.sitemap文件中,在下面你可以看到站点地图文件。Web.sitemap文件包含一个顶层的<siteMap>元素。在<siteMap>元素内至少嵌套一个<siteMapNode>元素。在一个站点地图内必须有一个顶层的<siteMapNode>。站点导航特性需要一个根<siteMapNode>来确保沿着节点层次的访问最终汇聚到一个已知的节点。你可以在根<siteMapNode>元素下嵌套多个<siteMapNode>元素。此外,嵌套<siteMapNode>元素的深度是没有限制的。
一个<siteMapNode>元素通常包含Url(链接)、Title(标题)和Description(描述)属性。Url属性指明与应用程序中的页面对应的路径。它也可以包含其它应用程序中的页面的路径,或者指向完全不同的网站的多个URL。在下面的例子中,所有的Url属性都使用应用程序相对语法来引用路径。Title属性用于显示导航数据UI的文本内容。例如,SiteMapPath控件把Title属性作为控件的超链接文本显示。如果提供了Description属性,服务器控件就把显示为工具条提示或ALT文本。开发者也可以给<siteMapNode>添加自定义属性,利用SiteMapNode类的默认索引器(indexer)就可以检索这些属性了。你可以查阅.NET框架组件文档找到更多的关于<siteMapNode>元素其它一些属性的信息。
Web.sitemap的内容
<siteMap>
<siteMapNode title="Home" url="~/default.aspx" >
<siteMapNode title="Introduction to ASP.NET" url="~/introduction/default.aspx">
<siteMapNode title="What''s New in Whidbey