如何在没有多个根节点的情况下使用多个站点地图文件

时间:2020-03-06 14:25:08  来源:igfitidea点击:

我正在使用ASP.NET菜单控件。我希望菜单看起来像这样,其中链接1到10在一个站点地图文件中,链接11到20在另一个站点地图文件中。

root
--link 1
(...)
--link 10
--link 11
(...)
--link 20

但是,站点地图文件必须具有我似乎无法抑制的根目录。

有什么想法吗?

-江户

解决方案

有什么理由不能添加虚拟根节点,然后将ASP.NET菜单控件子类化以忽略虚拟"根"节点?

我们应该能够告诉SiteMapProvider为菜单使用不同的站点地图。

我的另一个问题是拥有多个站点地图文件的目的是什么?我敢肯定我们有这样做的正当理由,但是知道发生了什么将使它更易于理解和提出更好的解决方案。

话虽这么说,我会想出一个本土的菜单系统。我们可以在前端使用jQuery和superfish插件,并在后端使用C读取站点地图文件以构建菜单结构。

我们可以通过执行以下操作禁止根节点:

SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();

我使用此方法隐藏树视图的根节点。