asp.net 2.0的XmlSiteMapProvider不支持页面的QueryString,下面的代码就是在SiteMapNode上增加了一个属性reliantOn,用来支持QueryString参数
如下面的代码片断,扩展方法RenderBootstrapMenu具有一个缺省的参数siteMapProviderName ,表示读取SiteMap结构采用的SiteMapProvider的配置名称。 在该方法中,我们通过指定的SiteMapProvider(如果没有指定,则采用默认配置的SiteMapProvider)得到代表整个SiteMap根节点的SiteMapNode对象,并将其子节点(以及子节点的子节点 siteMapProvider = ! SiteMap.Providers.Cast<SiteMapProvider>().First(); 8: return new MvcHtmlString( RenderMenu (siteMapProvider.RootNode.ChildNodes)); 9: } 10: 11: private static string RenderMenu
– 设置当前网站的导航 –> <asp:SiteMapPath SiteMapProvider=”SPContentMapProvider” id=”ContentMap” SkipLinkText=” – 设置当前站点的导航 <asp:SiteMapPath SiteMapProvider=”SPSiteMapProvider” id=”ContentMap” SkipLinkText=”” NodeStyle-CssClass
SiteMapPath只能与SiteMapProvider一起使用,需要设置控件的SiteMapProvider属性。 SiteMapPath控件通过Web.config文件中设置的默认的SiteMapProvider来访问相同的数据。 · 获取SiteMapProvider实例的指针,它返回一个节点。 ASP.NET发布的时候带有XmlSiteMapProvider提供程序。 有了SiteMapProvider指针之后,你就可以根据URL来检索特定节点的站点导航数据。它会让你获取站点导航数据中的SiteMapNode实例指针。 站点导航特性在SiteMapProvider基类中暴露了SiteMapResolve事件。
ASP.NET MVC: How to combine scripts and other resources http://aspmvccombine.codeplex.com/ 18、An ASP.NET SiteMapProvider