在MVC中合成多个动作方法

时间:2011-05-03 14:41:54

标签: asp.net-mvc

我们有一个仪表板式应用程序,屏幕上有很多单独的位,它们是异步加载的。这些位中的每一个都真正有意义,因为它在页面的控制器上有自己的动作。但是,如果我们将http请求的数量减少到1,数据将加载得更快。我正在考虑创建一个只返回几个较小操作的结果组合的操作,这样Web客户端可以单独或一起获取操作。然而,这似乎是一个常见问题的手动解决方案,所以我想知道是否有内置的支持以这种方式聚集行动我不知道。任何人

2 个答案:

答案 0 :(得分:1)

在核心视图中,您可以使用Html.RenderAction()方法将操作与其他操作完全分开。

答案 1 :(得分:1)

为什么不直接使用 ViewModel 包含信息中心所需的所有数据,然后创建多个部分视图,使用ViewModel中的数据提供这些视图?

我的项目中还有一个仪表板,我这样做了,我很满意解决方案。我有DashboardController,它的Index操作只需要ViewModel(聚合所有必要的数据)并将其发送到View。在该视图中,我有几个部分视图(每个视图都需要自己的模型),我从ViewModel传递数据。然后在该局部视图内部引用特定动作(如特定模型的CRUD) 当您这样做时,您可以轻松地为特定模型创建部分视图(在我的情况下,任务,项目,用户..)。然后在最终布局中将它们用作碎片。我的ViewModel包含任务,项目和用户的集合,然后我将其传递给匹配的部分视图。