私のサイトは、データベースとXMLデータの両方からサイトマップを動的に作成しています。しかし、ニュース記事をリストアップしているサイトの一部については、ニュース記事の詳細ページをサイトマップに入れないことに決めました。したがって、ニュース記事のタイトル(サイトマップにあるリスティングページから)をクリックすると、記事のあるページに移動しますが、そのページ/ URLはサイトマップにありません。別の既存のSiteMapNodeを使用するためにSiteMap.CurrentNodeを偽装する
私は、ページの読み込みに私がサイトマップにあるニュース記事のリストページ(のノードにSiteMap.CurrentNodeを変更したい、基本的に
SiteMap.CurrentNode
を使用するマスターページのコントロールとロジックを持っています)。したがって、本質的にこのページで実行されているロジックのすべてが、そのページをリスティングページであるかのように扱います。私はこれを行うためにとにかく見つけることができません。
このコードは、私がその鍵を知っているので、私が望むノードを得ることができます。
SiteMapDataSource siteMapDataSource1 = new SiteMapDataSource();
siteMapDataSource1.SiteMapProvider = "Main";
SiteMapNode newsListingPageNode = siteMapDataSource1.Provider.FindSiteMapNodeFromKey(siteMapKey);
だから、基本的に私はこれを行うことがしたい:
SiteMap.CurrentNode = newsListingPageNode;
しかし、現ノードを設定することはできません。
どのように私はこれを行うことができますか?私は助けに感謝します。
Chrisさん、ありがとうございました。私はこれが間違いなくほとんどの場合有効だと思います。残念ながら、適切な(おそらくおそらく最良ではない)解決策が出てくるまで、私はあなたの回答を見ませんでした。私は通知の設定を変更する必要があります...私はこれを試すことができるだけでなく、いくつかの将来のプロジェクトは、おそらくこのサイトマップアーキテクチャと同じサイトマップアーキテクチャを使用し、そのようなソリューションを使用する必要があります。 – Dmase05