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た。サイトマップにキー test を含むサイトマップ ノードがあります

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

これを適切に達成するためのアイデアは、私にとって本当に役に立ちます。

4

1 に答える 1

1

サイトマップを動的に編集するには、IDynamicNodeProviderのカスタム実装またはISiteMapBuilderのカスタム実装を使用できます。

前者はより簡単に実行でき、後者はノードをより細かく制御できます。また、ISiteMapBuilder を使用するには、組み込みの実装を独自の実装に置き換えることができるように、外部 DI コンテナーを使用する必要があります。

ノードを更新する頻度によっては、キャッシュ設定も微調整する必要がある場合があることに注意してください。

于 2013-08-10T04:41:06.847 に答える