在网站中同时使用 多个sitemap文件 以及 让sitemap文件中的信息存在数据库中
asp.net2.0 出现了站点导航控件,又为我们省去了不少事情,而且使用简单,基本只需要在页面上放一个SiteMapPath控件, 然后设置Web.sitemap这个xml文件。就基本大功告成。
但是深入的使用,很多人都会有2个疑问。 一个是我们很多网站有很多套导航, 比如前台一套、管理员登陆一套、会员登录又是一套。 这个如何实现, 当然asp.net中的站点导航是可以实现的这中多sitemap效果的; 另外一个就是很多软件项目中,功能模块可以是配置在数据库中, 也就是说不能去手写这个web.sitemap文件, 而是要用程序动态生成, 这个当然也是没有问题的。
一、在一个网站中使用多个web.sitemap文件的步骤
1、首先重新增加一个站点地图文件, 比如Test.sitemap
2、在web.config中增加一个 siteMap provider
注意 type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 不能省
3、在页面中:<asp:SiteMapPath ID="SiteMapPath1" runat="server" SiteMapProvider="mysitemapprovider">
</asp:SiteMapPath>
二、让sitemap文件中的信息存在数据库中
1、在web.config中增加一个 siteMap provider
这个地方不需要 siteMapFile
2、编写MyTestProject.MySiteMapProvider类, 此类必须实现抽象类StaticSiteMapProvider中的2个抽象方法 BuildSiteMap、GetRootNodeCore。 下面是一个范例的截图, 这个范例的实际情况是,这个项目的模块(模块名)和功能(功能名、功能URL,功能所属模块)存储在数据库。