我有一个从 web.sitemap 文件构建的自定义菜单导航,第一行类似于:
SiteMapNodeCollection topLevelNodes = SiteMap.RootNode.ChildNodes;
这行得通 - 它从 web.sitemap 文件中获取所有顶级节点,并允许我查看每个 SiteMapNode 并做一些事情。
但是,现在我希望能够创建多个 web.sitemap 文件,然后以编程方式确定要使用哪个 web.sitemap 文件,但我似乎不知道如何做到这一点。我假设我可以创建一个自定义 SiteMapProvider 来执行逻辑以确定要加载哪个 web.sitemap 文件,或者我有多个提供程序,每个提供程序的 SiteMapFile 属性设置为特定的 *.sitemap 文件,然后切换在我访问 SiteMap.RootNode 之前以编程方式提供程序。
我认为拥有一个自定义提供程序可能更容易,然后覆盖它查找实际物理站点地图文件位置的部分,但我不清楚我将如何做到这一点
我搜索了很多,但大多数答案似乎是关于标准站点地图路径控件等,以及如何设置 SiteMapDataSource,我认为这与我的方法无关。