递归渲染Asp.Net Mvc中的部分视图是个坏主意吗?

时间:2009-06-19 07:34:35

标签: asp.net-mvc recursion partial-views

我想输出一个看起来像这样的菜单结构

<ul>
   <li>
      MenuItemName1
      <ul>
        <li>Child Item</li>
      </ul>
   </li>
   <li>
      MenuItemName2
   </li>
</ul>

我有一个menuitem类,其中包含name,url和children菜单项。我想创建一个局部视图,将每个项目呈现为上面的无序列表,我会递归调用它来遍历整个树。

这是个坏主意吗? 它会非常慢吗?

3 个答案:

答案 0 :(得分:3)

我这样做并且它似乎并不特别慢,但它不是一个高容量的网站。是一个很好的地方可以连接一些缓存。

查看my question on the same topic的答案。我认为HTMLHelper扩展方法可能比嵌套的部分视图执行得更好。

答案 1 :(得分:0)

懒惰并为自己省去一些重复的工作总是一个好主意。

它不应该比拥有一个直接包含所有元素的视图慢,也不应该是部分渲染调用。

答案 2 :(得分:0)

我不确定MVC但是对于传统的ASP.Net 2.0如果嵌套用户控件太深,你可能会破坏堆栈。我看到这种情况发生在大约10个以上的嵌套层次。