/ / Używanie dwóch web.sitemap w projekcie - c #, asp.net, webforms, web-config, web.sitemap

Używanie dwóch web.sitemap w projekcie - c #, asp.net, webforms, web-config, web.sitemap

Chcę korzystać z dwóch różnych sieci.mapa witryny w jednej aplikacji. (Pasek nawigacji bootstrap jest tworzony na mojej stronie wzorcowej, chcę inne strony domyślne układu itd.) Tak więc msdn mówi, że musisz dodać nową web.sitemap i klucz w web.config Dokumentacja msdn więc po wykonaniu tego nie jestem pewien, jak do kwerendy do nowej web.sitemap, ponieważ czytam oryginalnego jeden w następujący sposób:

SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....

I jest ok ... navbar to wszystko jest w porządku ...

Ale czego chcę to coś takiego:

SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;

oczywiście ta funkcja nie istnieje ...

Wszystko, co chcę, aby przeczytać nową web.sitemap bez zmiany zbyt wiele kodu.

Czy ktoś może wskazać mi właściwy kierunek?

Z góry dziękuję.

Odpowiedzi:

0 dla odpowiedzi № 1

To w twojej konfiguracji.

    <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>

Następną rzeczą, którą robię, jest dodanie asp: sitemapdatasource do strony o poprawnej nazwie podanej w pliku konfiguracyjnym.

jeśli masz menu asp: menu, asp: repeater lub dowolną inną kontrolę, możesz użyć źródła danych, aby połączyć go z asp: sitemapdatasource

SiteMapDataSource test = new SiteMapDataSource();
test.Provider.RootNode

0 dla odpowiedzi nr 2

Cóż, znalazłem rozwiązanie. Korzystając z klasy SiteMap, jak w przykładzie użytym w pytaniu, można programowo uzyskać dostęp do różnych web.sitemap i przeczytać

SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;

Dzięki @Davy Quyo, które potwierdzają mi pierwszy krok: dodanie dostawcy do web.config