Ho avviato una nuova applicazione Web Form di ASP.NET 4. Per impostazione predefinita, il file Site.master contiene il seguente menu:Creare un menu dal file 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>
Questo menu contiene due blocchi: "Home" e "Informazioni". Mi piace questa struttura. Tuttavia, desidero popolare lo NavigationMenu
in base ai contenuti del mio file Web.sitemap. In questo momento, questo file è simile al seguente:
<?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>
ho cambiato il codice NavigationMenu
a guardare come il seguente:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
Il mio problema è, questo approccio crea un piccolo blocco che rappresenta il menu. Quando l'utente si posiziona su questo punto, due voci di sottomenu appaiono "Casa" e "Prodotti". Stranamente, il file web.sitemap consente solo uno siteMapNode
come figlio dell'elemento siteMap
. Come faccio a fare in modo che "Casa" e "Prodotti" appaiano nello stesso modo in cui "Home" e "Informazioni" hanno fatto, dandomi la flessibilità di usare la mappa del sito?
Grazie!