2009-03-25 11 views
1

Meine Website hat einige Seiten, die auf dieselbe untergeordnete Seite verweisen. Ich verwende eine XML-Sitemap, die es mir nicht erlaubt, einen SiteMapNode mit derselben URL zu duplizieren. Meine Idee war dann, meinem SiteMapPath-Steuerelement einen übergeordneten Knoten zu geben, um sich selbst zu füllen, und dann einen SiteMapNode der aktuellen Seite hinzuzufügen.Gibt es eine Möglichkeit, den aktuellen Knoten eines SiteMapPath-Steuerelements programmgesteuert festzulegen?

Hat jemand sonst etwas Ähnliches tun müssen? Ich habe diesen Artikel http://msdn.microsoft.com/en-us/library/ms178425.aspx angeschaut, der beschreibt, wie man "Site-Map Nodes im Speicher programmatisch ändert", aber sie schließen den SiteMapNode in die Datei ein und modifizieren diesen Knoten dann nur, indem sie den Querystring untersuchen.

Mein Knoten existiert nie, oder wenn es ist, müsste ich es auf das richtige Elternteil kopieren, damit es den richtigen Pfad rendern kann. Für eine visuelle:

Home 
--My Page 
----Page A 
----Page B 
----Page C 
--My Other Page 
----Page A 
----Page D 
--YAPage 
----Page B 
----Page C 

Einige Beispiele von dem, was Ich mag würde, um zu sehen:

Home > My Page > Page A 
Home > My Other Page > Page A 
Home > My Page > Page B 
Home > YAPage > Page B 

Antwort

1

wie diese Looks werden das Problem lösen:

http://www.codeproject.com/KB/aspnet/ABetterSiteMapResolve.aspx http://netpl.blogspot.com/2008/04/sitemapresolve-and-dynamic-site-map.html

Für dynamische Sitemaps: http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

mehrere Provider mit Sie benötigen diese zu verwenden, anstatt die SiteMapResolve Ereignis anhängen: (. Wenn Ihre Veranstaltung nicht höchstwahrscheinlich Brennen Sie nicht den richtigen Provider vereinbart haben)

SiteMap.Providers [currentProvider ] .SiteMapResolve + = neuer SiteMapResolveEventHandler (Provider_SiteMapResolve);