我已经开始了一个新的ASP.NET 4 WebForm应用程序.默认情况下,Site.Master文件包含以下菜单:
<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>
此菜单包含两个块:“Home”和“About”.我喜欢这种结构.但是,我想根据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”和“Products”以“Home”和“About”的方式出现,同时让我灵活地使用站点地图?
谢谢!
解决方法
对我来说ShowStartingNode =“false”效果更好.