我已經啓動了一個新的ASP.NET 4 WebForm應用程序。默認情況下,Site.Master文件包含以下菜單:從ASP.NET的web.sitemap文件生成菜單
<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>
此菜單包含兩個塊:「主頁」和「關於」。我喜歡這種結構。但是,我想根據我的Web.sitemap文件的內容填充NavigationMenu
。在這個時候,這個文件看起來是這樣的:
<?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>
我改變了NavigationMenu
代碼如下所示:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
我的問題是,這種方法創建一個小的塊表示該菜單。當用戶將鼠標懸停在上面時,會出現兩個子菜單項「Home」和「Products」。奇怪的是,web.sitemap文件只允許一個siteMapNode
作爲siteMap
元素的子元素。我如何使「家」和「產品」以「Home」和「About」相同的方式出現,同時給我使用站點地圖的靈活性?
謝謝!