我试图找出在我们的应用程序(如仪表板)中处理页面的最佳方式,其中有许多不同的窗格,其中包含各种数据位。
主要问题是当页面需要这么多数据时,控制器操作变得笨拙。客户端可以分解为部分视图以使其更易于管理,但所有数据仍需要传递到视图中才能分发到部分视图。或者是吗?
显然,有些面板可以动态加载或类似的东西,但我一直在寻找最好的方法,除了从浏览器加载页面的单个部分。
我试图找出在我们的应用程序(如仪表板)中处理页面的最佳方式,其中有许多不同的窗格,其中包含各种数据位。
主要问题是当页面需要这么多数据时,控制器操作变得笨拙。客户端可以分解为部分视图以使其更易于管理,但所有数据仍需要传递到视图中才能分发到部分视图。或者是吗?
显然,有些面板可以动态加载或类似的东西,但我一直在寻找最好的方法,除了从浏览器加载页面的单个部分。
您是否考虑Html.Action
过在您的视图中使用?您将向主视图传递足够的数据,以使您能够为每个子操作提供所需的数据。主要操作将呈现主视图,该视图将为每个窗格调用操作。每个操作都将负责该窗格,呈现其自己的局部视图。此外,您可以直接从客户端回调每个子操作,以通过 AJAX 动态更新该窗格。
这是一个示例,其中包含您的主视图可能看起来的一些模拟操作。
<div class="left-pane">
@Html.Action("Summary", new { id = Model.ID } )
</div>
<div class="middle-pane">
@Html.Action("PendingItems", new { id = Model.ID, timestamp = DateTime.Now } )
</div>
<div class="right-pane">
@Html.Action("News")
</div>