Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在mvc 3中动态编辑站点地图_C#_Asp.net Mvc 3_Sitemap_Mvcsitemapprovider - Fatal编程技术网

C# 在mvc 3中动态编辑站点地图

C# 在mvc 3中动态编辑站点地图,c#,asp.net-mvc-3,sitemap,mvcsitemapprovider,C#,Asp.net Mvc 3,Sitemap,Mvcsitemapprovider,在我的Asp.Net MVC3应用程序中,我使用的是sitemap。 我有一些场景需要在运行时动态编辑站点地图文件 我只是厌倦了删除节点和添加新节点。 我尝试了以下代码 SiteMapNode node = FindSiteMapNodeFromKey("test"); SiteMapNode no = node.ParentNode; RemoveNode(node); mRootNode = new SiteMapNode(this, "Deleted Home", "Default

在我的
Asp.Net MVC3
应用程序中,我使用的是
sitemap
。 我有一些场景需要在运行时动态编辑站点地图文件

我只是厌倦了
删除节点
添加新节点
。 我尝试了以下代码

 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"/>


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

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

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

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