如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?
在默认情况下,ASP.NET 站点导航使用一个名为 Web.sitemap 的 XML 文件,该文件描述网站的层次结构。但是,您可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。
若要为一个站点配置多个站点地图,在 Web.config 文件中配置多个站点地图
在 Web.config 文件中,找到 <siteMap> 部分。如果该部分不存在,则使用下面的代码。否则,只需插入 <add> 部分。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" />
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<siteMap>
<providers>
<add siteMapFile="~/Admin/Web.sitemap" name="MyAspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</siteMap>
</system.web>
</configuration>
如果你有多个sitemap可以加多个<add>,siteMapFile 是指定你所用地Sitemap,name请不要用相同的name(默认的是ASPNetXmlSiteMapProvider),因为name 相同就会覆盖前一个。配置文件就写好了
在页面中如果是SiteMapPath只用把配置文件name 指定给它地SiteMapProvider属性就行了
如果是TreeView那就要配置它的SiteMapDataSource的siteMapProvider属性
下面看一代码:
<asp:SiteMapPath ID="SiteMapPath1" runat="server" SiteMapProvider="MyAspNetXmlSiteMapProvider">
</asp:SiteMapPath>
<asp:TreeView ID="TreeView2" runat="server" DataSourceID="SiteMapDataSource2">
</asp:TreeView>
<asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" SiteMapProvider="MyAspNetXmlSiteMapProvider" />
如果你不指定他们的SiteMapProvider 他就会使用默认的如下:
<asp:SiteMapPath ID="SiteMapPath1" runat="server">
</asp:SiteMapPath>
这样就实现了一个站点可以使用多个Web.siteMap了。还有另外一种方式实现那就是重写它的提供者,这种方式稍微有点复杂,在下次文章中就会写到。
源代码下载
转载于:https://www.cnblogs.com/964/archive/2008/09/12/1290097.html
如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?相关推荐
- html中怎么给长方形填充颜色,PS怎么在一个矩形里填充两种颜色 ps给矩形填充两种颜色的教程...
PS怎么在一个矩形里填充两种颜色?看到别人设计的作品中,一个矩形被填充了两种不同颜色,这是如何操作的呢?ps小白们或许还不太清楚吧,今天,小编为大家带来了ps给矩形填充两种颜色的教程.感兴趣的朋友快来 ...
- vue如何在一个工程里判断h5还是pc,(利用在一个页面显示不同router-view内容原理,本文只使用于单页面项目,多页面项目请查看我另一篇博文)
本文只适用于单页面项目,多页面项目请查看我另一篇博文 vue如何在一个工程里显示pc和手机端(适用多页面复杂项目) https://blog.csdn.net/qq_37816525/article/ ...
- Matlab 一张图绘制在一个figure里,多张图绘制在一个figure里,和多张图分别绘制在一个figure里(多重子图)讲解及代码
matlab的绘图可以采用直角坐标系.对数坐标系和极坐标等形式.数据点也可用向量或矩阵形式给出,类型可以是实型或复型. 一张图绘制在一个figure里: 以实例和代码讲解:在不同图形窗口下分别绘制出y ...
- (zzulioj1007)鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只
题目描述 鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外.已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只? 输入 输入两个整数heads和feet,分别代表笼子里头的个数和脚的个数 ...
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次
题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次 解答: 我们从头到尾异或数组中的每个数字,那么最终的结果是两个只出现一次数字的异或的结果,由于两个数字不一样,那么异或的结果肯定不为0, ...
- 这样在一个sql里完成更新和插入,只用一次数据库连接,效率提高了
代码如下,请给出具体修改代码 public void AddCategory(string nCategoryName, int nImgId, int nBelongToId, int nShopI ...
- 在一个数组中实现两个堆栈
本题要求在一个数组中实现两个堆栈. 函数接口定义: Stack CreateStack( int MaxSize ); bool Push( Stack S, ElementType X,int Ta ...
- 如何在一个表达式中合并两个字典?
我有两个Python字典,我想编写一个返回合并的这两个字典的表达式. 如果update()方法返回其结果而不是就地修改dict,则将是我需要的方法. >>> x = {'a': 1, ...
- wpf里的menu怎么用_股市里的两市成交量是什么,它反映了什么,我是怎么用它来定投的...
大家好,我是基金定投实验记录人阿涛 我以前说过我自己的定投经验,是根据两市成交量作为一个参考值来变动我自己的定投额度的.有些网友呢,就留言问我,两市成交量是什么,在哪里看,怎么用这个数据. 今天我就想 ...
最新文章
- 全景照片不怕歪!Facebook 用神经网络矫正扭曲的地平线
- 业界丨几张图带你看懂人工智能产业
- win10计算机记录,启用Windows 10计算器中的历史记录功能 | MOS86
- Appendix之setup.py:附录文件内容记录setup.py
- minisap的安装
- 邻接表建立图(c语言)
- sonarqube下载地址
- Pixhawk之姿态解算篇(4)_补充篇
- python怎么改背景_python IDE背景怎么改
- 华为值多少钱?院士倪光南:13000亿美元!超过苹果,碾压阿里!
- Linux网络编程--sendfile零拷贝高效率发送文件
- 系列 | 高性能存储-MySQL数据库之存储过程揭秘
- Lc19删除链表的倒数第N个节点
- 阿里云云计算 8 ECS的实例规格
- JavaScript快速入门-基础
- 密码忘用计算机解开,电脑密码忘了怎么办,详细教您电脑开机密码忘记了怎么解决...
- 教务系统mysql注入的原理_SQL注入原理及具体步骤
- NeoKylin中标麒麟系统用户和组的管理命令
- 2018永洪科技大数据技术上海峰会-唤醒数据.遇见未来
- JAVA串口通信开发