构建和自我指涉类表呈现无限分层类别树
-
26-09-2019 - |
题
我有,其中每个类别具有一个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对象将其投射到您的视图模型类。
不隶属于 StackOverflow