Html.RenderAction表现如何?

时间:2010-02-03 12:10:01

标签: asp.net-mvc

我想在我的视图中有多个Renderaction,但有一点需要考虑的是在这种情况下renderAction的性能。

例如,我有几个模块,我想在视图上呈现它,有两种方法可以做到:

  1. 在控制器中查询,这很长,我们可以在这里做异步
  2. 在视图中,调用RenderAction,每次渲染都会调用查询
  3. 你能说出哪一个更好,哪一个更快?

    谢谢

1 个答案:

答案 0 :(得分:1)

这里没有一般性答案。你必须逐案做出这个决定。我个人倾向于尽可能地进行单个查询,因为它减少了到数据库的往返。但是如果你的查询涉及笛卡尔积,你通常最好分成几个查询(RenderAction方法)。

您还需要考虑RenderAction方法产生更多可重用的操作。如果需要可重用性,您可能希望选择RenderAction,即使它在性能方面不是最佳的。

混合方法是进行未来的查询。 NHibernate支持multi queries,可用于在单个往返中透明地运行多个查询。这称为future queries,尚未发布AFAIK,但您可以独立于NHibernate应用此概念。