1

次のように、各カテゴリに、マルチレベルの HTML リストとして表示したい他のカテゴリを参照できるCategoriesテーブルがあります。ParentIdCategoryId

<ul class="tree">
    <li>Parent Category
        <ul>
            <li>1st Child Category
                <!-- more sub-categories -->
            </li>
            <li>2nd Child Category
                <!-- more sub-categories -->
            </li>
        </ul>
    </li>
</ul>

現在、部分ビューを再帰的にレンダリングし、次のカテゴリを渡しています。うまく機能しますが、ビューでクエリを実行しているため、間違っています。

リストをツリー オブジェクトにレンダリングし、すべての階層カテゴリのリストが必要になるたびにすばやく表示できるようにキャッシュするにはどうすればよいですか?

4

1 に答える 1

1

自己参照型のビュー モデル クラスを作成します。

DataContextビューで実行しているクエリを使用して、適切なモデル クラス (または部分クラス) にデータを入力します。

クエリを実行するメソッドを、結果をチェックして に格納するメソッドにラップしますCache

カテゴリ ツリーに変更が加えられるたびに、必ずキャッシュを無効にしてください。

クエリが多数のクエリ (ツリー レベルごとに 1 つ) を実行する場合は、カテゴリ テーブルの内容をフラット リストとして取得し、linq to objects を使用してそれをビュー モデル クラスに射影することを検討してください。

于 2010-04-13T11:25:26.183 に答える