我已经阅读了一些关于视图中仪表板设置的其他stackoverflow帖子,但我仍然在苦苦挣扎。我有一个主查询返回我的数据的详细视图,因为我只想打一次数据库。所以我有一个名为GetEmployeeInfo()
的Controller Action,它返回一个IEnumerable<EmployeeBase>
模型类。我希望能够将这个类分解为视图中的不同div。例如,我会根据员工类别在View聚合行数上面有三个div,在显示详细表格的botton上有2个div。这可以通过一个视图严格完成,通过设置条件/聚合语句或我使用部分视图或其他东西。或者使用一个控制器操作是一个问题?
谢谢。
答案 0 :(得分:1)
我使用了Pat Burke的答案(请参阅我的问题中的评论。我也在下面发布了它)。我为我的员工类别创建了一个基类和一个局部视图,它具有我需要的所有属性。我的细节部分做了同样的事情。然后我创建了DashboardViewModel
,其中包含3个IEnumerable<EmployeeCategoryBase>
属性以及2个IEnumerable<EmployeeDetailInfo>
属性。然后,我创建了一个强类型DashboardViewModel
视图,其中包含5个使用@{Html.RenderPartial(ViewName,model.property);}
另一种方法是将您的仪表板视图强类型化为视图模型,如“DashboardViewModel”,它由不同的集合组成,这些集合对应于每个子部件所需的数据。这也会将聚合逻辑放在服务器端而不是JS中的客户端上。您甚至可以包含部分视图,每个视图对应于视图模型中的子部分和数据集合。最好让您的视图模型与视图所需的数据直接相关