ASP.. Net MVC仪表板视图.在哪里执行聚合

本文关键字:执行 在哪里 视图 Net MVC 仪表板 ASP | 更新日期: 2023-09-27 18:05:29

我已经读了一些关于仪表板设置在一个视图的其他stackoverflow帖子,但我仍然挣扎一点。我有一个主查询,它返回数据的详细视图,因为我只想访问数据库一次。所以我有一个叫做GetEmployeeInfo()的控制器动作,它返回一个IEnumerable<EmployeeBase>模型类。我希望这门课能够把它分解成视图中的不同部分。例如,我将在按员工类别汇总行数的视图顶部设置三个div,在显示详细表的底部设置两个div。这可以通过设置条件/聚合语句严格地通过一个视图来完成,或者我使用部分视图或其他东西。或者使用一个控制器动作是个问题?

谢谢。

ASP.. Net MVC仪表板视图.在哪里执行聚合

我使用了Pat Burke的答案(参见我的问题下面的评论)。我也把它贴在下面)。我为员工类别创建了一个基类和一个分部视图,其中包含了我需要的所有属性。我对细节部分做了同样的处理。然后我创建了DashboardViewModel,它有3个IEnumerable<EmployeeCategoryBase>属性和2个IEnumerable<EmployeeDetailInfo>属性。然后我创建了一个强类型的DashboardViewModel视图,有5个div,使用@{Html.RenderPartial(ViewName,model.property);}

另一种选择是让你的仪表板视图强类型为一个视图模型,如"DashboardViewModel",它由不同的集合组成,对应于每个子部分所需的数据。这也将把聚合逻辑放在服务器端,而不是JS中的客户端。您甚至可以包含部分视图,每个视图对应于视图模型中的一个子部分和一组数据。让视图模型直接与视图所需的数据相关联是一种很好的做法