ASP.NET 2.0站点地图及开发使用网站导航结构2010-12-04 天极 如果你曾经到过陌生的目的地旅行过,那么你一定知道地图的重要性— 它们能够帮助使你的旅行更舒适些。这个道理对于网站来说是同样的。一个网站 应该呈现给访问者一种简单而灵活的导航结构以便它们能够容易地导航到该网站 的不同部分。ASP.NET 2.0提供了一种称为SiteMap的特征—它帮助你实现 这一功能。本文将解释什么是站点地图并且描述如何使用它们的网站导航结构。一、SiteMap一个站点地图是一个XML文件(具有一个.sitemap扩展名)—它能够详 细地描述你的网站的整个导航布局。你可以使用站点地图文件来满足你的一切要 求。一个示例将有助于解释站点地图文件。图1显示了一个示例网站的目录结构。

图1:网站结构图中,首页(Default.aspx)和Contact Us页面(contact.aspx)位于网站的根 文件夹下。还有两个分别称为Products和Services的子文件夹。每一个子文件夹 下都有两个Web表单:分别相应于Product1.aspx和Product2.aspx,以及 Service1.aspx和Service2.aspx。现在,只要遵循如下的步骤,你就可以使用一个站点地图来描述这个网站的 结构:1. 使用VS.NET 2005创建一个新网站。2. 右击该网站并且选择“Add New Item...”。3. 从“Add New Item...”对话框中选择Site Map(见图2)并且 命名它为Web.sitemap。

图2:添加一个新的站点地图Key in the following XML markup in the web.sitemap file:
<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap- File-1.0" >
<siteMapNode url="default.aspx" title="Home" description="My Web Site">
  <siteMapNode url="~/products/default.aspx" title="Products">
  <siteMapNode url="~/products/product1.aspx" title="First Product" />
  <siteMapNode url="~/products/product2.aspx" title="Second Product" />
</siteMapNode>
<siteMapNode url="~/services/default.aspx" title="Services">
  <siteMapNode url="~/services/service1.aspx"  title="First Service" />
  <siteMapNode url="~/services/service2.aspx" title="Second Service" />
</siteMapNode>
<siteMapNode url="contact.aspx" title="Contact Us" />
</siteMapNode>
</siteMap>站点地图文件的根是siteMap。它包含一个结点siteMapNode,并且根据你的 网站结构,它可以包含若干siteMapNode结点。这个siteMapNode标签具有四个重要的属性(参见表格1)。
| 属性 | 描述 | 
| title | 显示页面的标题。这个属性经常由导航控件用于显示URL的标 题。 | 
| url | 显示这个结点描述的页面的 URL。 | 
| description | 指定关于这个页面的描述。你可以使用这个描述来显示提示内 容。 | 
| roles | 通过使用安全整修(后面将讨论),这个属性指定允许存取这个 页面的角色。 | 
表格1:<siteMapNode>标签的重要属性这就构成了你的站点地图。现在你可以把使用它作为导航目的。