• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET 实践:配置多个网站地图和网站地图提供者

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

默认时,ASP.NET 网站导航与描述 Web 站点层次结构的 Web.sitemap 文件(XML)一起工作。但是,对于更全面的 Web 站点导航结构,可能需要更多用于描述导航结构的网站地图文件或网站地图提供者。

首先从应用程序根目录的网站地图开始,为单个站点配置多个网站地图。接着,在 Web.sitemap 文件中将默认网站地图根目录下的提供者配置成默认的网站地图提供者。然后,在 SiteMapNode 对象中进行引用并链接到子网站地图或提供者,具体步骤见下面两个示例。

从父网站地图链接到子网站地图

  • 在父网站地图导航结构中需要显示子网站地图的位置创建 SiteMapNode。比如,如果使用默认的 XmlSiteMapProvider,请在 Web.sitemap 文件的适当位置添加下例 SiteMapNode

    <siteMapNode siteMapFile="MySiteMap.sitemap" />
    

    提示:siteMapFile 参数值可以是以下任何一种:

    • 某个应用程序相对引用(如 ~/MySiteMap.sitemap)。

    • 某个虚拟路径(如 /Customers/MySiteMap.sitemap)。

    • 某个针对当前网站地图文件相对路径的引用(如 Guests/MySiteMap.sitemap)。

从父网站地图链接到自定义网站地图提供者

  1. 在父网站地图导航结构中需要显示子网站地图的位置创建 SiteMapNode。比如,如果使用默认的 XmlSiteMapProvider,请打开 Web.sitemap 文件并在层次结构中的适当位置添加下例 SiteMapNode

    <siteMapNode provider="SimpleTextSiteMapProvider" />
    

    提示:Web.config 文件中的 provider 参数名与提供者的名称是一样的。

  2. 自定义网站地图提供者必须使用 add 属性才能够被添加到 Web.config 文件中。下例代码添加了名为 SimpleTextSiteMapProvider 的自定义提供者,但仍然把 XmlSiteMapProvider 作为默认的网站地图提供者进行维护。

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
          <providers>
            <add
              name="SimpleTextSiteMapProvider"
          type="Samples.AspNet.SimpleTextSiteMapProvider,Samples.AspNet"
              siteMapFile = "siteMap.txt" />
          </providers>
        </siteMap>
      </system.web>
    </configuration>
    

在 Web.sitemap 文件中配置多个网站地图

前面两个示例演示的网站地图相互链接允许将若干网站地图结构的片段进行整体拼接。做为替代操作,也可以在 Web.config 文件中添加对不同网站地图的引用,从而从根本上使它们变得更像是不同的提供者。这比较适用于 Web 网站需要针对不同的区域使用不同的导航结构时。

为 Web.config 文件配置多个网站地图
  • 定位到 Web.config 文件的 <siteMap> 部分。如果不存在则请使用下例代码。另外要注意的是,仅插入 <add> 部分。

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
         <providers>
           <add 
             name="Company1SiteMap"
             type="System.Web.XmlSiteMapProvider" 
             siteMapFile="~/Company1/Company1.sitemap" />
           <add 
             name="Company2SiteMap"
             type="System.Web.XmlSiteMapProvider" 
             siteMapFile="~/Company2/Company2.sitemap" />
         </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    假设存在 ~/Company1/Company1.sitemap 和 ~/Company2/Company2.sitemap 这两个网站地图文件,通过它们与导航 API 成员和导航控件(如 SiteMapPathTreeView,以及 Menu)的联合使用可以 Company1SiteMapCompany2SiteMap 的相关 SiteMapProvider 属性进行设置。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在Asp.Net一个页面中实例化另一个页面发布时间:2022-07-10
下一篇:
挡不住的好奇心:ASP.NET 5是如何通过XRE实现跨平台的发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap