在mvc 3中动态编辑网站地图

本文关键字:编辑 网站 地图 动态 mvc | 更新日期: 2023-09-27 18:21:40

在我的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"/>

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

在mvc 3中动态编辑网站地图

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

前者更容易实现,后者使您能够更好地控制节点。此外,为了使用ISiteMapBuilder,必须使用外部DI容器,这样才能用自己的实现替换内置实现。

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