ASP.NET: Die SiteMap API – Teil 1

Von Andreas Aschauer Autor Feed 27. October 2009 10:11

ASP.NET bietet eine tolle API zum Erstellen von SiteMaps und zum Generieren von Menüs aus einer Sitemap.

Eine Sitemap wird in ASP.NET definiert über eine Datei namens web.sitemap. In Visual Studio wird im Projekt Explorer mittels Rechtsklick –> Hinzufügen –> Neues Element einfach die entsprechende Vorlage gewählt.

image

Diese *.sitemap Datei ist eine XML Datei, welche mittels dem Element <sitemapNode> beliebige Hierarchien von Webseiten abbilden kann. Eine einfache Sitemap könnte folgendermassen definiert sein.

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
   3:     <siteMapNode url="~/" title="Home"  description="Home">
   4:         <siteMapNode url="~/Home/News" title="News"  description="Aktuelle Neuigkeiten" />
   5:         <siteMapNode url="~/Home/References" title="Referenzen" description="Referenzen"/>
   6:         <siteMapNode url="~/Home/Impressum" title="Impressum" description="Impressum">
   7:             <siteMapNode url="~/Home/Impressum/Kontakt" title="Kontakt" description="Kontakt"/>
   8:         </siteMapNode>
   9:     </siteMapNode>
  10: </siteMap>

Hier sieht man, dass mit dem Element <sitemapNode> beliebig geschachtelt werden kann.

Bei der Entwicklung mit ASP.NET WebForms, stehen zur weiteren Verarbeitung der Sitemap fertige Controls zur Verfügung. Folgendes Markup zeigt die Verwendung von SiteMapPath (Breadcrumb), <asp:Menu> und <asp:Treeview>.

   1: <asp:SiteMapPath ID="SiteMapPath1" runat="server" PathDirection="RootToCurrent" />
   2:  
   3: <!-- Für asp:menu und asp:treeview wird eine SiteMapDatasource benötigt--!>
   4: <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server"  />
   5:  
   6: <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"/>
   7:  
   8: <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1"/>

Ergebnis:image

Dieses kleine Beispiel zeigt, wie einfach mit der ASP.NET Sitemap API Navigation in ASP.NET Webanwendungen eingebaut werden kann. Natürlich sind die Controls komplett mit eigenen Styles und Templates anpassbar.

Links:

MSDN: ASP.NET Websitenavigation

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

www.microsoft.com/austria | © 2009 Microsoft Corporation. Alle Rechte vorbehalten.
BlogEngine.NET 2.5.0.6 powered by atwork