1

我的网站有几个页面指向同一个子页面。我正在使用一个 xml 站点地图,它不允许我使用相同的 Url 复制 SiteMapNode。然后我的想法是给我的 SiteMapPath 控件一个父节点来填充自己,然后在当前页面的 SiteMapNode 上添加。

有没有其他人必须做类似的事情?我看过这篇文章http://msdn.microsoft.com/en-us/library/ms178425.aspx,它描述了如何“以编程方式修改内存中的站点地图节点”,但它们在文件中包含 SiteMapNode 和然后只需通过检查查询字符串来修改该节点。

我的节点永远不存在,或者如果它存在,我需要将它复制到正确的父节点,以便它可以呈现正确的路径。对于视觉:

Home
--My Page
----Page A
----Page B
----Page C
--My Other Page
----Page A
----Page D
--YAPage
----Page B
----Page C

我想看到的一些例子:

Home > My Page > Page A
Home > My Other Page > Page A
Home > My Page > Page B
Home > YAPage > Page B
4

1 回答 1

1

看起来这些将解决问题:

http://www.codeproject.com/KB/aspnet/ABetterSiteMapResolve.aspx http://netpl.blogspot.com/2008/04/sitemapresolve-and-dynamic-site-map.html

对于动态站点地图: http: //www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

对于多个提供者,您需要使用它来附加 SiteMapResolve 事件:(如果您的事件没有触发,很可能您没有设置正确的提供者。)

SiteMap.Providers[currentProvider].SiteMapResolve += new SiteMapResolveEventHandler(Provider_SiteMapResolve);

于 2009-03-27T16:50:40.553 回答