首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在项目中使用两个web.sitemap

在项目中使用两个web.sitemap
EN

Stack Overflow用户
提问于 2015-09-09 07:41:15
回答 2查看 1.1K关注 0票数 0

我想在一个应用程序中使用两个不同的web.sitemap。(引导导航栏是在我的母版页中创建的,我想要不同的布局默认页面等等)所以msdn说您必须在web.config msdn文档中添加一个新的web.sitemap和一个键,所以我不确定如何查询到新的web.sitemap,因为我如下所示:

代码语言:javascript
复制
SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....

一切都好..。肚脐在这里都很好..。

但我想要的是:

代码语言:javascript
复制
SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;

很明显这种功能不存在..。

我只想让它阅读新的web.sitemap,而不需要修改太多的代码。

有人能给我指明正确的方向吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-09 10:51:17

这个在你的配置中。

代码语言:javascript
复制
    <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数据源连接。

代码语言:javascript
复制
SiteMapDataSource test = new SiteMapDataSource();
        test.Provider.RootNode
票数 0
EN

Stack Overflow用户

发布于 2015-09-09 14:45:13

我找到了解决办法。使用SiteMap类(如问题中使用的示例),您可以以编程方式访问不同的web.sitemap并读取

代码语言:javascript
复制
SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;

感谢@Davy确认了我的第一步:将提供者添加到web.config中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32473683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档