我有从Web.sitemap文件建立了一个自定义菜单导航,这个第一行会是这样的:SiteMap更改SiteMapProvider?
SiteMapNodeCollection topLevelNodes = SiteMap.RootNode.ChildNodes;
这工作 - 它获得所有顶层节点从web.sitemap中文件,并允许我浏览每个SiteMapNode并执行一些操作。
但是,现在我想能够创建多个web.sitemap文件,然后以编程方式确定要使用哪个web.sitemap文件,但我似乎无法找到如何执行此操作。我假设我可以创建一个自定义SiteMapProvider,它可以执行逻辑来确定要加载哪个web.sitemap文件,或者我有多个提供者,每个提供者都将SiteMapFile属性设置为特定的* .sitemap文件,然后切换提供程序之前,我访问SiteMap.RootNode。
我想它可能更容易有一个自定义的供应商,然后覆盖在那里寻找实际的物理站点地图文件位置的部件,但我很清楚我会怎么做这
我GOOGLE了很多,但大多数答案似乎是关于标准sitemappath控件等,以及如何设置一个SiteMapDataSource,我认为这与我的方法不相关。
你不应该切换/改变任何东西......相反你需要像这样一直访问RootNode *然后在运行时解析SiteMap.Providers [someProvider] .RootNode *和* someProvider *。 – 2011-01-25 21:44:15
哦,没想到,明天我会试试,听起来好像会奏效。 – 2011-01-25 21:50:13