asp.net mvc从不同的控制器调用单一视图

时间:2013-08-17 20:04:51

标签: asp.net-mvc-4

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

从第一个ActionResult我想按类显示StudentList 来自2nd ActionResult我想通过Class Teacher显示StudentList 来自3rd ActionResult我想通过Fee Not Paid显示StudentList 来自4th ActionResult我想通过Absent Student显示StudentList

所有4返回模型类型的学生。 字段为StudentName,ParentMobileNo

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

此致

3 个答案:

答案 0 :(得分:3)

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

return View("StudentList", model);

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

@{ Html.RenderPartial("StudentList", model); }

答案 1 :(得分:0)

创建一个将连接起来使用您的学生模型的部分视图。

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

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

然后为每个场景创建另外三个操作,再次调用相关的业务/存储库方法来执行查询。只要它们返回部分学生视图所期望的相同模型,它就应该起作用。

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

return View("StudentList", model);

答案 2 :(得分:0)

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

由于 普拉萨德