我们开发的Web应用程序一般都有多个页面。通常要以某种方式创建许多相互连接的Web页面。如果在页面之间建立导航系统,终端用户就很容易以直观的方式操作应用程序。
目前,必须在许多不同的方式中选择,将应用程序的路径展示给终端用户。继续给整个应用程序添加页面时,站点导航的任务是复合的、较难完成的。
目前在Web应用程序中建立导航的方法是在页面上散布超链接。超链接一般使用包含文件或用户控件添加到Web页面中。它们也可以直接硬编码到页面上,以显示在页面的标题中或边栏上。在页面之间移动或修改页面名称时,导航的难度会加大。有时开发人员不得不进入应用程序中的每个页面,修改导航的某些方面。
ASP.NET 2.0引入了一个导航系统来解决这个问题,从而使终端用户使用应用程序的管理变得非常简单。ASP.NET中的这个新功能非常复杂,但它也可以很简单,我们可以深入控制它的各个方面。
这个新式的导航系统可以在一个XML文件中定义整个站点,该XML文件称为站点地图。在定义了新的站点地图后,就可以使用SiteMap类来编程处理它。ASP.NET 2.0中新增的另一个特性是一个新的数据提供程序,它专用于处理站点地图文件,可以把站点地图绑定到一系列基于导航的新服务器控件上。本章介绍ASP.NET 2.0中新导航系统的所有这些组件。下面将探讨站点地图。
16.1 基于XML的站点地图
站点地图并不是一个必需的元素(如后面所述),但在使用ASP.NET 2.0的新导航系统时,首先要进行的第一个步骤是为应用程序建立站点地图。站点地图是对站点结构的XML描述。
使用这个站点地图可以定义应用程序中所有页面的导航结构,以及它们的相互关系。如果根据新的站点地图标准来定义,就要使用新的SiteMap类或新的SiteMapDataSource控件与这个导航信息交互。使用SiteMapDataSource控件可以把站点地图文件中的信息绑定到各种数据绑定控件上,包括ASP.NET 2.0提供的新导航服务器控件。
要为应用程序创建新的站点地图文件,可以将站点地图或XML文件添加到应用程序中,把XML文件命名为Web.sitemap。如果选择了Site Map选项,这个文件就已经添加了。该文件命名为Web,新的扩展名是.sitemap。程序清单16-1演示了.sitemap文件的一个例子。
程序清单16-1 Web.sitemap文件示例
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="Home" description="Home Page" url="Default.aspx">
<siteMapNode title="News" description="The Latest News" url="News.aspx">
<siteMapNode title="U.S." description="U.S. News"
url="News.aspx?cat=us" />
<siteMapNode title="World" description="World News"
url="News.aspx?cat=world" />
<siteMapNode title="Technology" description="Technology News"
url="News.aspx?cat=tech" />
<siteMapNode title="Sports" description="Sports News"
url="News.aspx?cat=sport" />
</siteMapNode>
<siteMapNode title="Finance" description="The Latest Financial Information"
url="Finance.aspx">
<siteMapNode title="Quotes" description="Get the Latest Quotes"
url="Quotes.aspx" />
<siteMapNode title="Markets" description="The Latest Market Information"
url="Markets.aspx">
<siteMapNode title="U.S. Market Report"
description="Looking at the U.S. Market" url="MarketsUS.aspx" />
<siteMapNode title="NYSE"
description="The New York Stock Exchange" url="NYSE.aspx" />
</siteMapNode>
<siteMapNode title="Funds" description="Mutual Funds"
url="Funds.aspx" />
</siteMapNode>
<siteMapNode title="Weather" description="The Latest Weather"
url="Weather.aspx" />
</siteMapNode>
</siteMap>
这个文件有什么功能?它提供了逻辑结构,ASP.NET 2.0现在可以在导航系统的其他地方使用该结构。下面看看这个文件的构成。
这个XML文件的根节点是<siteMap>元素。该文件中只能有一个<siteMap>元素。在这个<siteMap>元素中,有一个<siteMapNode>元素。这一般是应用程序的起始页面。在程序清单16-1的文件中,根<siteMapNode>指向起始页面Default.aspx:
<siteMapNode title="Home" description="Home Page" url="Default.aspx">
表16-1描述了<siteMapNode>元素中最常见的一些属性。
表 16-1
|
属 性 |
说 明 |
|
title |
title属性提供链接的文本描述。这里使用的String值是用于链接的文本 |
|
description |
description属性不仅说明该链接的作用,还用于链接上的ToolTip属性。ToolTip属性是终端用户把光标停留在链接上几秒后显示出来的黄框 |
|
url |
url属性描述了文件在解决方案中的位置。如果文件在根目录下,就使用文件名,例如“Default.aspx”。如果文件位于子文件夹下,就在这个属性的String值中包含该文件夹,例如,“MySubFolder/Markets.aspx” |
添加了第一个<siteMapNode>后,就可以添加任意多个<siteMapNode>元素。还可以在结构中通过为父<siteMapNode>创建子元素<siteMapNode>,生成更多的链接级别。
程序清单16-1中的例子给应用程序提供了如下导航结构:
Home
News
U.S.
World
Technology
Sports
Finance
Quotes
Markets
U.S. Market Report
NYSE
Funds
Weather
可以看出,这个结构有3级。使用该文件的最简单方式是利用ASP.NET 2.0中新增的SiteMapPath服务器控件。它是专门为处理.sitemap文件而设计的。







