Ich habe eine neue ASP.NET 4 WebForm-Anwendung gestartet. Standardmäßig enthält die Datei Site.Master folgendes Menü:Erstellen Sie ein Menü aus der Datei web.sitemap in ASP.NET
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
</Items>
</asp:Menu>
Dieses Menü enthält zwei Blöcke: „Home“ und „About“. Ich mag diese Struktur. Allerdings möchte ich die NavigationMenu
basierend auf den Inhalt meiner Web.sitemap-Datei bevölkern. Zu diesem Zeitpunkt sieht diese Datei wie folgt aus:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode>
<siteMapNode url="/Default.aspx" title="Home" description=""></siteMapNode>
<siteMapNode url="/Products/List.aspx" title="Products" description=""></siteMapNode>
</siteMapNode>
</siteMap>
Ich änderte den NavigationMenu
Code wie folgt aussehen:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
Mein Problem ist, erzeugt dieser Ansatz einen kleinen Block, der das Menü darstellt. Wenn der Benutzer darüber schwebt, erscheinen zwei Untermenüpunkte "Home" und "Products". Seltsamerweise erlaubt die web.sitemap-Datei nur eine siteMapNode
als Kind des Elements siteMap
. Wie mache ich es so, dass "Home" und "Products" auf die gleiche Weise wie "Home" und "About" erscheinen, während ich die Flexibilität habe, die Sitemap zu verwenden?
Vielen Dank!