/ / Uso de dos web.sitemap en un proyecto - c #, asp.net, webforms, web-config, web.sitemap

Uso de dos web.sitemap en un proyecto: c #, asp.net, webforms, web-config, web.sitemap

Quiero usar dos webs diferentes.Sitemap en una sola aplicación. (una barra de navegación de arranque es crear en mi página maestra, quiero diferentes páginas predeterminadas de diseño, etc.) Así que msdn dice que debe agregar un nuevo web.sitemap y una clave en el web.config documentación msdn así que después de hacerlo no estoy seguro de cómo consultar el nuevo web.sitemap porque leí el original de la siguiente manera:

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

Y está bien ... la barra de navegación está creada muy bien aquí ...

Pero lo que quiero es algo como:

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

Obviamente esa función no existe ...

Todo lo que quiero es leer el nuevo web.sitemap sin cambiar demasiado el código.

¿Alguien me puede apuntar en la dirección correcta?

Gracias por adelantado.

Respuestas

0 para la respuesta № 1

Esto en tu config.

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

Lo siguiente que hago es simplemente agregar asp: sitemapdatasource a la página con el nombre correcto que dio en el archivo de configuración.

luego, si tiene un menú asp: menú, asp: repetidor o cualquier otro control, puede usar datasourceid para conectarlo con el asp: sitemapdatasource

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

0 para la respuesta № 2

Bueno encontré la solución. Usando la clase SiteMap como el ejemplo usado en la pregunta, puede acceder mediante programación a diferentes web.sitemap y leer

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

Gracias a @Davy Quyo que me confirmó el primer paso: agregar el proveedor a web.config