Asp.net mvc 将用户界面划分为asp.net mvc视图

Asp.net mvc 将用户界面划分为asp.net mvc视图,asp.net-mvc,partial-views,Asp.net Mvc,Partial Views,我有一个CSS#MainDiv,左侧包含一个#TreeDiv,右侧包含一个#DataGridDiv TreeDiv包含一个带有Department对象和DataGridDiv的Javascript树视图 包含带有Employee对象的Datagrid 在树视图中更改部门的选择还应更改DataGrid中的相关employee对象 我已经设置了部门控制器。这两个控件都应该能够通过ajax接收数据 彼此独立 1.)索引方法应该返回什么类型的对象以在视图中显示此聚合数据 2.)如何将控件划分为哪种视图

我有一个CSS#MainDiv,左侧包含一个#TreeDiv,右侧包含一个#DataGridDiv

TreeDiv包含一个带有Department对象和DataGridDiv的Javascript树视图 包含带有Employee对象的Datagrid

在树视图中更改部门的选择还应更改DataGrid中的相关employee对象

我已经设置了部门控制器。这两个控件都应该能够通过ajax接收数据 彼此独立

1.)索引方法应该返回什么类型的对象以在视图中显示此聚合数据

2.)如何将控件划分为哪种视图

2.)如何将控件划分为哪种视图

使用#MainDiv、#TreeDiv和#DatagridDiv创建视图。让TreeDiv托管您的树控件(您已经知道这一点)。创建局部视图以显示包含employee对象的datagrid。让#DatagridDiv托管此局部视图

现在,当在树控件中选择一个部门时,您可以对接受该部门并返回包含员工数据的部分视图的控制器方法进行ajax调用。使用返回的数据更新#DatagridDiv

或者,如果您熟悉Json,您的控制器方法可以返回Json格式的员工数据(而不是部分视图),您可以使用javascript/jquery将其填充到#datagridDiv内的html表中

1.)索引方法应该返回什么类型的对象以在视图中显示此聚合数据

在Index方法中,您可以返回包含所有3个div和#TreeDiv的视图,其中填充了树控件。在客户端,当页面加载时,您可以识别所选部门以进行ajax调用并更新#datagridDiv。这种方法在客户端会有一个it延迟,但是您可以使用它来显示一些动画,指示页面正在加载/div正在更新


如果不想添加此滞后期,请确定加载树状视图时将选择的部门,并填充该部门的局部视图,将此添加到服务器端的#datagridDiv并交付。

为什么我必须为我的Dataggridiv创建一个分部?视图包含一个完整的html页面以及头部和身体标记。而局部视图将仅呈现html标记(表示其中的控件)。由于您只是通过ajax调用更新了一个div,所以最好使用部分视图。为什么您不建议我也为TreeControl创建一个部分视图,该视图使用add/del节点更新了ajax?我想在初始加载期间,整个树控件将一次加载,导航/选择只会隐藏/显示元素。如果是这种情况,那么就没有必要进行局部查看。如果树控件也得到动态更新,那么您可能也必须使用局部视图,但请确保您在设计局部视图时考虑到树视图的更新方式。因此,我现在使用#MainDiv、#TreeDiv和#DatagridDiv创建了一个普通视图。然后我创建了两个partialView(_TreeView和_DataGridView),并将它们放入对应的(#TreeDiv和#DataGridDiv)中。是这样吗?