1

データベースには、カテゴリの階層リストのリストがあるため、このカテゴリのリストを使用して ( StaticSiteMapProvider を拡張することにより) カスタム サイトマップ プロバイダーを構築します。

現在、記事を表示するページ /ShowArticle.aspx?id=" + Eval("ID") は /id/article-title.aspx に書き換えられて
いる
ため、物理的に存在するわけではありません。

次が必要です:選択したページが表示されたら、「パンくず」に完全なカテゴリパスを表示したい(すべての記事には、1つのレベルカテゴリを含む「カテゴリ」プロパティがあります-親はありません)

カテゴリ構造の例:

Home  
   Products 
      CdRom
      DvdRom
        Toshiba
   Support
     Hardware 
     Software 

記事 id=xx,category=Toshiba, title="Best Toshiba DVD" を開いた場合、"パンくずリスト" のパスは次のようになります。
Home|Products|DvdRom|Toshiba|Best Toshiba DVD

どうやってするの?カスタム サイトマップ プロバイダに何かを追加する必要がありますか?

4

2 に答える 2

0

答えが得られない :(
たぶん、次のようにする必要があります:
カテゴリのサイト マップを構築する代わりに、カテゴリとデータベース内のすべての利用可能な記事の両方を構築する必要があります。
効率的ではありません (キャッシュを使用しても)。私が考える唯一の方法。

他に何ができますか?

更新: 残っているのは、パンくずリストとして機能するリンクのリストを動的に作成することだけです。記事が開かれると、含まれているカテゴリが読み取られ、完全な階層カテゴリ パスが計算されます (ルートからこの現在のノードまで)。

于 2009-07-27T09:53:05.903 に答える
-1

私は SiteMap プロバイダーが何であるかを調べなければなりませんでしたが、そうしているうちに、MSDN Web サイトで探しているかもしれない答えに偶然出くわしました: SiteMapPath クラスを使用したパンくずリスト

それはあなたが求めているものではないかもしれませんが、正しい方向へのポイントになる可能性があります:)

于 2009-07-26T15:32:38.140 に答える