2

我在 2 个不同的控制器中运行了 4 个不同的 ActionResult,我创建了一个局部视图 StudentList,我想使用相同的局部视图,因为模型是相同的。

从第一个 ActionResult 我想按班级显示 StudentList 从第二个 ActionResult 我想按班级老师显示 StudentList 从第三个 ActionResult 我想按未支付的费用显示 StudentList 从第 4 个 ActionResult 我想按缺勤学生显示 StudentList

所有 4 都返回一个 Model 类型的 Student。带有字段 StudentName、ParentMobileNo

是否可以不创建 4 个不同的视图并使用单个局部视图或单个视图来显示结果。

问候

4

3 回答 3

3

是的。从控制器返回 ActionResult 时,创建一个共享视图并传递视图名称。

return View("StudentList", model);

或者,如果您想从视图中渲染部分内容:

@{ Html.RenderPartial("StudentList", model); }
于 2013-08-17T20:21:45.490 回答
0

View 应该只关心显示传递给它的模型。模型的创建方式应该对视图透明。在您的情况下,您可以拥有一个仅显示传递给它的 StudentList 模型的视图。要生成此模型,您可以使用一种或四种操作方法。如果你想要单一的动作方法,你可以传递一个指示分组的参数。

谢谢普拉萨德

于 2013-08-19T04:59:48.393 回答
0

创建一个将连接到使用您的学生模型的局部视图。

然后在您的控制器中创建多个操作以返回不同的结果。

StudentByClass - 然后在此操作中调用相关的业务层/存储库来执行查询,只要它返回类型 Student(或在您的部分视图中使用的模型的名称)就可以了。

然后为每个场景创建另外三个操作,再次调用相关的业务/存储库方法进行查询。再次,只要他们返回 Partial Student View 期望它应该工作的相同模型。

然后在每个动作中返回视图以及传递给模型的结果,如下所示:

return View("StudentList", model);
于 2013-08-17T20:28:08.220 回答