/ / Použitie dvoch web.sitemap v projekte - c #, asp.net, webforms, web-config, web.sitemap

Použitie dvoch web.sitemap v projekte - c #, asp.net, webforms, web-config, web.sitemap

Chcem použiť dva rôzne webové stránky.sitemap v jednej aplikácii. (bootstrap navbar je vytvorený na mojej hlavnej stránke, chcem rôzne predvolené stránky rozloženia atď.) Tak msdn hovorí, že musíte pridať nový web.sitemap a kľúč v web.config dokumentáciu MSDN takže po tom, že im nie ste si istí, ako sa dotaz na nový web.sitemap, pretože som si prečítal pôvodný takto:

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

A jeho ok ... Navbar jej vytvoril tu dobre ...

Ale to, čo chcem, je niečo ako:

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

samozrejme, že funkcia neexistuje ...

Všetko, čo chcem čítať nový web.sitemap bez zmeny príliš veľa kódu.

Môže mi niekto myslieť správnym smerom?

Vopred ďakujem.

odpovede:

0 pre odpoveď č. 1

To vo vašej konfigurácii.

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

ďalšia vec, ktorú robím, je jednoducho pridať asp: sitemapdatasource na stránku so správnym názvom, ktorý ste zadali v konfiguračnom súbore.

potom, ak máte asp: menu, asp: opakovač alebo iný ovládací prvok môžete použiť datasourceid pripojiť s asp: sitemapdatasource

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

0 pre odpoveď č. 2

Dobre som našiel riešenie. Použitím triedy SiteMap, ako je príklad použitý v otázke, môžete programovo prístup k rôznym webovým stránkam a čítať

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

Vďaka @Davy Quyo, ktoré mi potvrdzujú prvý krok: pridanie poskytovateľa do web.config