我们有一个仪表板式应用程序,屏幕上有很多单独的位,它们是异步加载的。这些位中的每一个都真正有意义,因为它在页面的控制器上有自己的动作。但是,如果我们将http请求的数量减少到1,数据将加载得更快。我正在考虑创建一个只返回几个较小操作的结果组合的操作,这样Web客户端可以单独或一起获取操作。然而,这似乎是一个常见问题的手动解决方案,所以我想知道是否有内置的支持以这种方式聚集行动我不知道。任何人
答案 0 :(得分:1)
在核心视图中,您可以使用Html.RenderAction()
方法将操作与其他操作完全分开。
答案 1 :(得分:1)
为什么不直接使用 ViewModel 包含信息中心所需的所有数据,然后创建多个部分视图,使用ViewModel中的数据提供这些视图?
我的项目中还有一个仪表板,我这样做了,我很满意解决方案。我有DashboardController,它的Index操作只需要ViewModel(聚合所有必要的数据)并将其发送到View。在该视图中,我有几个部分视图(每个视图都需要自己的模型),我从ViewModel传递数据。然后在该局部视图内部引用特定动作(如特定模型的CRUD) 当您这样做时,您可以轻松地为特定模型创建部分视图(在我的情况下,任务,项目,用户..)。然后在最终布局中将它们用作碎片。我的ViewModel包含任务,项目和用户的集合,然后我将其传递给匹配的部分视图。