2013-08-17 60 views
2

我有4个不同的ActionResult在2个不同的控制器中运行,我创建了一个局部视图StudentList,我想使用与模型相同的partialView。asp.net mvc从不同的控制器调用单个视图

从1日的ActionResult我想从第二的ActionResult我想通过班主任 从3日的ActionResult我想通过收费来显示StudentList不从第4的ActionResult我想缺席显示StudentList支付 显示StudentList Class,以显示StudentList

学生

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

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

问候

回答

3

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

return View("StudentList", model); 

或者,如果你想呈现的部分,从一个观点:

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

创建的局部视图将被挂接到用你的学生模型。

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

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

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

然后在每个动作的返回观与结果一起传递给模型,像这样:

return View("StudentList", model); 
0

观应该只是担心显示模式传递给它。如何创建模型应该对视图透明。 在你的情况,你可以有一个单一的视图,只显示传递给它的StudentList模型。为了生成这个模型,你可以有一个动作方法或者其中的四个。 如果您想要单一操作方法,您可以传递一个指示分组的参数。

谢谢 Prasad

相关问题