He comenzado una nueva aplicación ASP.NET 4 WebForm. Por defecto, el archivo Site.Master contiene el siguiente menú:Crear un menú desde el archivo web.sitemap en 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>
Este menú contiene dos bloques: "Inicio" y "Acerca de". Me gusta esta estructura Sin embargo, deseo llenar el NavigationMenu
según el contenido de mi archivo Web.sitemap. En este momento, este archivo es el siguiente:
<?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>
he cambiado el código de NavigationMenu
a tener el siguiente aspecto:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
Mi problema es, este enfoque crea un pequeño bloque que representa el menú. Cuando el usuario pasa el cursor sobre esto, aparecen dos elementos del submenú "Inicio" y "Productos". Curiosamente, el archivo web.sitemap solo permite encontrar uno siteMapNode
como elemento secundario del elemento siteMap
. ¿Cómo hago que "Home" y "Products" aparezcan de la misma manera que "Home" y "About", mientras que me da la flexibilidad de usar el sitemap?
¡Gracias!