我想在一个应用程序中使用两个不同的web.sitemap。(引导导航栏是在我的母版页中创建的,我想要不同的布局默认页面等等)所以msdn说您必须在web.config msdn文档中添加一个新的web.sitemap和一个键,所以我不确定如何查询到新的web.sitemap,因为我如下所示:
SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....一切都好..。肚脐在这里都很好..。
但我想要的是:
SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;很明显这种功能不存在..。
我只想让它阅读新的web.sitemap,而不需要修改太多的代码。
有人能给我指明正确的方向吗?
提前谢谢。
发布于 2015-09-09 10:51:17
这个在你的配置中。
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<clear />
<add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap" />
<add name="XmlSiteMapProvider2" type="System.Web.XmlSiteMapProvider" siteMapFile="secondsitemapname.sitemap" />
</providers>
</siteMap>接下来,我只需将asp:sitemap数据源添加到页面中,并在配置文件中使用正确的名称。
然后,如果您有asp:菜单、asp:中继器或任何其他控件,则可以使用datasourceid将其与asp:sitemap数据源连接。
SiteMapDataSource test = new SiteMapDataSource();
test.Provider.RootNode发布于 2015-09-09 14:45:13
我找到了解决办法。使用SiteMap类(如问题中使用的示例),您可以以编程方式访问不同的web.sitemap并读取
SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;感谢@Davy确认了我的第一步:将提供者添加到web.config中
https://stackoverflow.com/questions/32473683
复制相似问题