我有,其中每个类别具有一个Categories,可以指任何其他类别的ParentId一个CategoryId表,我想显示为多级HTML列表,像这样:

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

目前我递归渲染的局部视图和向下流过下一个类别。它的伟大工程,但它是错误的,因为我在执行一个视图的查询。

我怎么能每次渲染列表成树对象,并将它缓存用于快速显示我需要所有层次类别的列表?

有帮助吗?

解决方案

创建视图模型类,它是自参考。

填充它在适当的模型类(或也许在你DataContext部分类)使用在所述视图中执行查询。

裹,做的方法中的查询的方法,该方法检查,结果在Cache商店。

请确保您缓存失效时改变了类别树的。

如果查询执行大量的查询(每棵树一级),然后考虑让类别表的内容作为一个平面列表,然后使用LINQ to对象将其投射到您的视图模型类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top