0

在我的Asp.Net MVC3应用程序中,我正在使用sitemap. 我有一些我想edit sitemap file dynamically在运行时的场景。

我只是累了removing a nodeadding a new one而不是那样。我尝试使用以下代码

 SiteMapNode node = FindSiteMapNodeFromKey("test");
 SiteMapNode no = node.ParentNode;
 RemoveNode(node);
 mRootNode = new SiteMapNode(this, "Deleted Home", "Default.aspx", "Home");
 no.ChildNodes.Add(mRootNode);.

但是节点变成了null. 我的站点地图中有一个带有关键测试的站点地图节点

<mvcSiteMapNode title="Delete" action="Delete"  key="test" roles="testrole"/>

任何正确实现这一点的想法都会对我很有帮助。

4

1 回答 1

1

要动态编辑站点地图,您可以使用IDynamicNodeProvider的自定义实现或ISiteMapBuilder的自定义实现。

前者更容易做到,后者让您可以更好地控制节点。此外,为了使用 ISiteMapBuilder,您必须使用外部 DI 容器,以便您可以将内置实现替换为您自己的。

请注意,根据您更新节点的频率,您可能还需要调整缓存设置。

于 2013-08-10T04:41:06.847 回答