我正在尝试找出在我们的应用程序中处理页面的最佳方法,例如仪表板,其中有许多不同的窗格,其中包含各种数据。
主要问题是当页面需要如此多的数据时,控制器操作变得难以处理。客户端可以分解为部分视图以使其更易于管理,但所有数据仍然需要传递到View中以分发到部分。或者是吗?
显然有些面板可以动态加载或类似的东西,但除了从浏览器加载单个页面之外,我一直在寻找最好的方法。
答案 0 :(得分:1)
您是否考虑在视图中使用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>