网站地图

news/2024/5/16 9:20:54/文章来源:https://blog.csdn.net/weixin_33896726/article/details/93238766

ASP.NET提供了网站地图提供器XmlSiteMapProvider,使用XmlSiteMapProvider可以从XML文件中获取网站地图信息。

XmlSiteMapProvider会从根目录中寻找名为Web.sitemap的文件来读取信息,在解析Web.sitemap文件中的网站地图数据后创建一个网站地图对象,此网站地图对象能够被SiteMapDataSource使用,SiteMapDataSource可以被放置在页面上的导航控件使用,最终由导航控件把网站的导航信息显示在页面上。 

创建网站地图

使用VS创建的站点地图文件会自动生成组成网站地图的基本结构。

创建站点地图要遵循的原则

  1.网站地图以<siteMap>元素开始以</siteMap>元素结束。其他信息放在<siteMap>元素和</siteMap>元素之间。

  2.每一页由<siteMapNode>元素来描述。每一个站点地图文件定义了一个网站的页面组织结构,可以使用<siteMapNode>元素向这个组织结构插入一个页面,页面包含页面的名称、页面的描述以及URL

  3.<siteMapNode>元素可以嵌套。一个<siteMapNode>元素表示一个页面,通过嵌套<siteMapNode>元素可以形成树型结构的页面组织结构。   

  4.每一个站点地图都是以单一的<siteMapNode>元素开始的。每一个站点地图都要包含一个根节点,其他的所有节点都包含在根节点中。

  5.不允许重复的URL在站点地图文件中,可以没有URL,但不允许重复的URL出现,因为SiteMapProvider是以集合的形式来存储节点的,而每项是以URL为索引的。

如果想要在不同的层次引用相同的界面,需要修改URL来实现使用站点地图文件进行网站的导航。例如:

    <siteMapNode url="~/Form1.aspx?name=name1" title="主页" description="主页" />

    <siteMapNode url="~/Form2.aspx?name=name2" title="主页" description="主页" />

网站地图的使用

把站点文件绑定到页面 

  1. 确定Web.sitemap文件使用到的页面都存在于网站项目中。

  2. 在页面上添加一个SiteMapDataSource控件。

  3. 添加一个绑定到SiteMapDataSource控件的导航控件。设置导航的控件的属性DataSourceIDSiteMapDataSource控件的ID

使用实例1

在普通页面中绑定站点文件。

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>
View Code

创建站点地图中使用到的页面,在Default.aspx.cs中添加SiteMapDataSource和TreeView控件,代码如下:

1 <div>
2     <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
3     <asp:TreeView ID="TreeView1" runat="server"
4 DataSourceID="SiteMapDataSource1"/>
5 </div>
View Code

使用实例2

在母版页中绑定站点文件

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>
View Code

新建母版页,在母版页中添加如下代码:

 1 <div>
 2         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
 3         <table>
 4             <tr>
 5                 <td>
 6                     <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1"/>
 7                 </td>
 8                 <td>
 9                     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
10                 </td>
11             </tr>
12         </table>
13 </div>
View Code

创建站点地图中使用到的页面,在页面Default.aspx中添加页面属性MasterPageFile="~/Navigation.Master",修改页面Default.aspx,代码如下:

1 <%@ Page Language="C#" MasterPageFile="~/Navigation.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %>
2 
3 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server" />
4 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"/>
View Code

使用实例3

SiteMapDataSource控件属性的应用

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>
View Code

新建母版页,在母版页中添加如下代码:

 1 <div>
 2         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartFromCurrentNode="true" />
 3         <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" StartingNodeUrl="~/Form2.aspx" />
 4         <table>
 5             <tr>
 6                 <td>
 7                     <asp:Table ID="Table1" text="当前页下的页面" runat="server" />
 8                     <br />
 9                     <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1"/>
10                     <br />
11                     <asp:Table ID="Table2" text="固定页面" runat="server" />
12                     <br />
13                     <asp:TreeView ID="TreeView2" runat="server" DataSourceID="SiteMapDataSource2"/>
14                 </td>
15                 <td>
16                     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
17                 </td>
18             </tr>
19         </table>
20 </div>
View Code

创建站点地图中使用到的页面,在页面Default.aspx中添加页面属性MasterPageFile="~/Navigation.Master",修改页面Default.aspx,代码如下:

1 <%@ Page Language="C#" MasterPageFile="~/Navigation.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication1.WebForm3" %>
2 
3 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server" />
4 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server" />
View Code

使用实例4

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>
View Code

创建站点地图中使用到的页面,在Default.aspx.cs中添加SiteMapDataSource和TreeView控件,代码如下:

1 <div>
2         <h4>当前节点</h4>
3         <asp:Label ID="Label1" runat="server" />
4         <h4>子节点</h4>
5         <asp:Label ID="Label2" runat="server" />
6         <h4>网站地图</h4>
7         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
8         <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" />
9  </div>
View Code

Default.aspx.cs页面中的Page_Load事件中添加如下代码:

 1             try
 2             {
 3                 string text = "";
 4                 Label1.Text = SiteMap.CurrentNode.Title;//显示当前节点的标题
 5                 if (SiteMap.CurrentNode.HasChildNodes)//判断当前节点是否存在子节点
 6                 {
 7                            foreach (SiteMapNode childNodes in
 8 SiteMap.CurrentNode.ChildNodes)
 9                         text = text + childNodes.Title + "<br/>";
10                         }
11                 Label2.Text = text;
12             }
13             catch (System.NullReferenceException ex)
14             {
15                 Label1.Text = "该节点不在网站地图中";
16             }
17             catch (Exception ex)
18             {
19                 Label1.Text = e.ToString();
20             }
View Code


 

转载于:https://www.cnblogs.com/spilledlight/p/4857931.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_746324.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单建立个人WEB网站

文介绍一些简单的方法是普通用户可以建设一个自己的个人WEB小网站。建站条件嘛只要有一台可以连接网络的电脑就足够了。由于我是用的是WIN7系统&#xff0c;以下操作均指是在WIN7环境下的&#xff0c;其他WIN操作系统大概都是类似的。开讲&#xff1a;第一步&#xff1a;首先我…

数十万网站被利用发起CC攻击

近日&#xff0c;阿里云云盾安全团队协助处理了多例金融证券直播行业的客户的网站攻击事件。有专业的攻击团伙&#xff0c;针对网上的金融证券直播类网站业务发起集中的网络攻击、意在破坏网站的正常运营&#xff0c;进而勒索钱财。云盾安全专家经过分析攻击、采用对应安全策略…

手机网站Mobile Web

原文链接地址有一个词"手机网站"&#xff08;mobile web&#xff09;&#xff0c;指供手机浏览的网站&#xff0c;但它是不存在的。人们提到"移动互联网"的时候&#xff0c;其实专指另外一样东西&#xff1a;手机App。一、Web App VS Native App比起手机Ap…

怎样将优酷网站下载的视频KUX转MP4格式

在休息之余&#xff0c;相信大多数人都会拿手机看电视剧听音乐之类的&#xff0c;最近拍了很多的新片子&#xff1a;《毒液&#xff1a;致命守护者》、《无名之辈》、《亡命救赎》《影》等等优质电影&#xff0c;但是很多的电影都只能在电影院观看的&#xff0c;如果不去电影院…

解析各大电子商务网站订单号的生成方式

2019独角兽企业重金招聘Python工程师标准>>> 订单是整个电子商务的核心。整个电子商务的流程也是围绕订单的状态执行的。这篇博客主要向大家介绍订单号的生成方式。 现在大型电商网站大多都有好几种下单途径。 比如&#xff1a;通过Web网站下单&#xff0c;通过打电…

window.open原页面跳转_百度转码后的手机网站页面是否有利于SEO优化

随着移动互联网的飞速增长&#xff0c;越来越多的移动端网站正在迅速掘起&#xff0c;据百度搜索统计表示&#xff1a;2013年移动端搜索发展迅猛&#xff0c;整体占比高达40%&#xff0c;预期在2014年内可能会出现超过PC端的搜索增长&#xff0c;从当前移动互联网的发展方向看来…

react登录页面_用 React 做一个人脸识别网站 - 前端篇

引言React 可以说是近些年最热门的前端框架啦&#xff0c; 并且非常非常的好用 ~很多的国外公司比如 Netflix、Feedly、Airbnb 都是用它来实现的网站主页。那么 React 到底是个什么呢&#xff1f;它其实是一个为数据提供渲染为HTML视图的开源JavaScript 库。传说最早起源于Face…

网站用户头像剪裁上传完整案例

做为网站前段开发人员来说&#xff0c;用户头像剪裁和上传是一个很常用的功能&#xff0c;一般这个功能涉及到图片的放大&#xff0c;缩小&#xff0c;移动&#xff0c;旋转&#xff0c;和剪裁。下面我们来做一个完整的demo&#xff0c;剪裁后的图片以base64的形式返回&#xf…

js记录用户在网站的浏览记录和停留时间(2)

问题&#xff1a;上次的代码确实解决了一部分用户访问记录的收集&#xff0c;但是还是存在一个问题就是 我们网站的注册 都是新页面打开的&#xff0c;如果用户刚进入网站就点击注册&#xff08;打开了新的页面&#xff09; &#xff0c;我代码里用到的 onbeforeunload 就无法将…

burpsuite只拦截特定网站数据包教程

一、背景说明 在配置burpsuite代理截包时经常会遇到这样的情况&#xff1a; 浏览器经常自己发一些包&#xff08;收集用户信息&#xff09;&#xff0c;干挠渗透测试人员对目标网站的检测&#xff1b; 如果是代理手机&#xff0c;那就是很多APP都时不时发一些包&#xff0c;干挠…

【转载】大型网站性能

参考这篇文章&#xff1a;http://www.csdn.net/article/2014-09-30/2821940 把整个过程&#xff0c;分为三段路径&#xff1a; 第一段在用户和浏览器端&#xff0c;主要负责发出用户请求&#xff0c;以及接受响应数据进行计算渲染显示给用户&#xff1b;第二段在网络上&#xf…

用户域名注册后 需要在租服务器吗,搭建论坛需要租用什么样的网站服务器

搭建论坛可能对于普通的站长还是比较遥远的事情&#xff0c;但是对IT行业有比较深刻了解的站长&#xff0c;他们往往喜欢选择搭建一个论坛&#xff0c;聚集一些属于自己的人气。那么搭建论坛需要租用什么样的网站服务器呢&#xff1f;我们知道&#xff0c;论坛它比普通网站需要…

40个新鲜的 jQuery 插件,使您的网站用户友好

作为最流行的 JavaScript 开发框架&#xff0c;jQuery 在现在的 Web 开发项目中扮演着重要角色&#xff0c;它简化了 HTML 文档遍历&#xff0c;事件处理&#xff0c;动画以及 Ajax 交互&#xff0c;这篇文章特别收集了40个新鲜的 jQuery 插件&#xff0c;使您的网站对用户更友…

一些好用的网站

一些好用的网站 Latex公式&#xff1a;http://www.mohu.org/info/symbols/symbols.htm Latex公式&#xff1a;https://www.luogu.org/blog/IowaBattleship/latex-gong-shi-tai-quan 在线latex公式编辑器&#xff1a;http://private.codecogs.com/latex/eqneditor.php LaTeX入门…

php xml网站地图生成,dedecms程序后台生成XML网站地图方法

网站为什么要生成XML地图&#xff1f;因为蜘蛛只能用XML地图来导航&#xff0c;为了更好的被收录&#xff0c;所以才要利用XML地图文件做sitemap。像我们的主站也是有导航的xml文件的哦&#xff0c;51PHP百度MAP 51PHP谷歌MAP&#xff1b;今天无忧主机小编教您如何制作简单可…

网站服务器和与主机区别,网站服务器和主机的区别

网站服务器和主机的区别 内容精选换一换本文介绍通过华为云市场镜像“Drupal内容管理系统(LAMP)”搭建Drupal网站的方法。Drupal是使用PHP语言编写的开源内容管理框架(CMF)&#xff0c;它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。Drupal用于构造提供多种功能和服…

一个成功的响应式网站该怎么策划

原文链接一个成功的响应式网站该怎么策划建站宝盒 2017-05-18 15:40:28 浏览55 评论0html5 网站建设 用户体验摘要&#xff1a; 一个成功的响应式网站需要具备公信力、营销力、传播力&#xff0c;要达到这样的要求网站策划就显得非常关键&#xff0c;网站策划是企业网站建设的重…

SharePoint Online 创建门户网站系列之母版页

前 言 虽然SharePoint中母版页看起来只是头部Banner和底部版权信息这两个部分&#xff0c;但是实质在SharePoint Online中的页面模型中占有重要地位&#xff0c;而且SPO对母版页有着完善的签入签出机制和版本控制&#xff0c;方便使用。 同时&#xff0c;除了保持网站所有页面的…

华纳云香港CN2站群服务器,1C/2C/4C不同C段可选,多达253个独立IP,SEO优化推广首选 含测评

香港站群服务器应用场景&#xff1a; **1.PBN站群SEO&#xff1a;**PBN站群拥有多个独立ip&#xff0c;且互不干扰。快速稳定的网站表现才可以吸引到更多的用户及蜘蛛爬行。 **2.跨境电商运营&#xff1a;**无论第三方平台开店还是自建店群都要求能够让买家快速访问&#xff0c…

Hulu李彬:看到不一样的视频网站,所遇挑战何尝不是一次革新的机会?

Hulu软件技术开发有限公司&#xff08;以下简称Hulu&#xff09;是美国三大电视网NBC、福克斯、迪斯尼合力在2007年建立的在线视频服务网站&#xff0c;主要目的是使传统媒体业务转型成数字新媒体&#xff0c;能够让更多的用户通过互联网上的不同的平台和方式访问视频内容。 此…