文章教程

9.1站点地图

8/31/2020 9:37:14 PM 人评论 次浏览

9.1 站点地图

默认情况下,站点导航系统使用一个包含站点层次结构的XML文件,创建站点地图的方法是创建一个Web.sitemap的XML文件,该文件按站点的分层形式组织页面。ASP.NET的默认站点地图提供程序自动选取此站点地图。

9.1.1 定义站点地图文件

通常情况下,定义站点地图文件也就是为网站添加Web.sitemap文件。添加Web.sitemap的步骤如下。

(1)在网站的解决方案资源管理器视图中,右击“网站项目名称”,在弹出的菜单中选择“添加新项”命令,如图9-1所示。

alt

图9-1 添加新项

(2)在弹出的“添加新项”对话框中,选择“站点文件”选项,单击“确定”按钮即可完成添加,如图9-2所示。

alt

图9-2 添加站点地图文件

下面是Web.sitemap文件示例。

alt

在Web.sitemap文件中,为网站中的每一页添加一个siteMapNode元素,然后通过嵌入siteMapNode元素创建层次结构。

9.1.2 使用SiteMapPath控件

SiteMapPath控件反映SiteMap对象提供的数据。它提供了一种用于轻松定位站点的节省空间方式,用作当前显示页在站点中位置的引用点。SiteMapPath控件直接使用网站的站点地图数据,比如,当浏览“预约教员”网页时,则SiteMapPath控件会显示与下面类似的内容。

主页>学员>预约教员

SiteMapPath由节点组成。路径中的每个元素均称为节点,用SiteMapNodeItem对象表示。锚定路径并表示分层树根的节点称为根节点,表示当前显示页的节点称为当前节点,当前节点与根节点之间的任何其他节点都为父节点。

SiteMapPath显示的每个节点都是HyperLink或Literal控件,可以将模板或样式应用到这两种控件中。

使用SiteMapPath控件无需代码和绑定数据就能创建站点导航,此控件可自动读取和呈现站点地图信息,也可以使用SiteMapPath控件更改站点地图数据。

下面演示SiteMapPath控件的使用。

示例1:使用SiteMapPath控件

(1)新建一个空网站。

(2)在网站的根目录中添加Web.sitemap,打开此Web.sitemap文件,输入以下代码。

alt

(3)保存该文件,将其关闭。

(4)在网站的根目录中添加一个窗体:BookTeacher.aspx,打开BookTeacher.aspx文件,切换到“设计”视图,从工具箱中双击“SiteMapPath”控件,将其添加到页面中,并添加下面的代码。

alt

(5)看到SiteMapPath控件立即显示Web.sitemap站点地图文件的内容,如图9-3所示。

alt

图9-3 显示导航数据

同样,用户添加另一个窗体:Index.aspx,并在页面上添加SiteMapPath控件,Index.aspx窗体立即显示当前页面的导航:首页>学员。

注意

只有在站点地图中列出的网页才能在SiteMapPath控件中显示导航数据。如果将SiteMapPath控件放置在站点地图中未列出的页上,该控件将不会向客户端显示任何信息。

9.1.3 SiteMap类

SiteMap类是站点的导航结构在内存中的表示形式,导航结构由一个或多个站点地图提供程序提供。SiteMap类默认的提供程序是XmlSiteMapProvider类,它使用XML配置文件Web.sitemap,具有以下3个功能。

(1)提供站点导航层次结构的根节点。

(2)标识哪个站点地图提供程序是主要的或默认的提供程序。

(3)跟踪用于创建SiteMap的所有提供程序对象。

SiteMap是SiteMapNode对象分层集合的容器,但是SiteMap不维护节点之间的关系,通常,它将此任务委托给站点地图提供程序。SiteMap充当到站点导航信息的一个接口,站点地图提供程序以SiteMapNode对象的形式包含这些信息,该类跟踪可从中访问站点导航数据的提供程序,并公开Providers集合。

SiteMap类的主要属性如表9-1所示。

表9-1 SiteMap类的主要属性

alt

它的主要事件是SiteMapResolve,当访问CurrentNode属性时发生。

9.1.4 URL地址映射

URL地址映射就是把一个URL地址映射为另外一个URL地址,当用户访问URL地址时,自动转到映射的URL地址。通常情况下,为保护真实的URL地址,可以使用URL地址映射来实现。使用URL地址映射,可在Web.config文件中使用<urlMappings>标记来设置URL映射。

< urlMappings >的语法如下。

alt

在上述语法中中,enabled为可选的Boolean特性,确定是否启用站点导航功能,默认值为true。

add为可选元素,将指定的UrlMapping对象添加到集合。clear可选元素,从集合中移除所有UrlMapping对象。remove可选元素,从集合中移除UrlMapping对象。

当然,在定义URL映射时还需要提供请求URL(url特性)和目标URL(mappedUrl特性)。

示例如下。

alt

上面的示例中,就分别对adminLogin.aspx、StudentLogin.aspx、TeacherLogin.aspx等进行了映射,当用户使用adminLogin.aspx访问时,系统会自动将地址映射到Default.aspx?UserType=admin,但浏览器的URL仍显示原请求的URL:adminLogin.aspx。

教程类别