在一个项目中使用两个 web.sitemap
Using two web.sitemap in a project
我想在一个应用程序中使用两个不同的 web.sitemap。 (在我的母版页中创建了一个 bootstrap 导航栏,我想要不同的布局默认页面等)所以 msdn 说你必须在 web.config [=13] 中添加一个新的 web.sitemap 和一个键=] 所以在这样做之后我不确定如何查询新的 web.sitemap 因为我阅读了原始的如下:
SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....
没问题...这里创建的导航栏一切正常...
但我想要的是:
SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;
显然该函数不存在...
我只希望它阅读新的 web.sitemap 而无需更改太多代码。
有人能指出我正确的方向吗?
提前致谢。
这在你的配置中。
<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:sitemapdatasource 添加到具有您在配置文件中提供的正确名称的页面。
然后如果您有 asp:menu、asp:repeater 或任何其他控件,您可以使用 datasourceid 将其与 asp:sitemapdatasource
连接
SiteMapDataSource test = new SiteMapDataSource();
test.Provider.RootNode
好吧,我找到了解决方案。使用 SiteMap class 就像问题中使用的示例一样,您可以以编程方式访问不同的 web.sitemap 并阅读
SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;
感谢@Davy Quyo 确认了我的第一步:将提供商添加到 web.config
我想在一个应用程序中使用两个不同的 web.sitemap。 (在我的母版页中创建了一个 bootstrap 导航栏,我想要不同的布局默认页面等)所以 msdn 说你必须在 web.config [=13] 中添加一个新的 web.sitemap 和一个键=] 所以在这样做之后我不确定如何查询新的 web.sitemap 因为我阅读了原始的如下:
SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....
没问题...这里创建的导航栏一切正常...
但我想要的是:
SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;
显然该函数不存在...
我只希望它阅读新的 web.sitemap 而无需更改太多代码。
有人能指出我正确的方向吗?
提前致谢。
这在你的配置中。
<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:sitemapdatasource 添加到具有您在配置文件中提供的正确名称的页面。
然后如果您有 asp:menu、asp:repeater 或任何其他控件,您可以使用 datasourceid 将其与 asp:sitemapdatasource
连接SiteMapDataSource test = new SiteMapDataSource();
test.Provider.RootNode
好吧,我找到了解决方案。使用 SiteMap class 就像问题中使用的示例一样,您可以以编程方式访问不同的 web.sitemap 并阅读
SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;
感谢@Davy Quyo 确认了我的第一步:将提供商添加到 web.config