一次在一个视图页面中显示两个部分视图

时间:2014-06-08 05:40:12

标签: entity-framework razor asp.net-mvc-5

我正在Visual Studio 2013上使用带有EF框架的Asp.net MVC 5创建基于Web的软件。

我有一个视图页面,需要在给定时间显示两个部分视图。部分视图与2个模型类相关联,因此将来自两个控制器。如何指定部分视图应该显示在哪个框架上?

我是MVC 5的新手,所以我无法提供更详细的说明。任何可以让我得到以下结果的建议都会有所帮助

enter image description here

1 个答案:

答案 0 :(得分:3)

至少有两个选择:

1 @ Html.Action

使用@Html.Action(两次)来使用单独的控制器调用渲染部分视图:

e.g。

   @Html.Action("action1", "Controller", new { id = Model.idOfPart1 }

   @Html.Action("action2", "Controller", new { id = Model.idOfPart2 }

如果id是关键/查找值,如果它们是完整视图,通常会传递给控件。

Action()导致对指定控制器的操作进行完全调用,并在父视图中就地生成结果。

2 @ Html.Render

如果您希望将组合的ViewModel传递给父视图,并将模型的某些部分发送到每个局部视图,则可以使用@Html.Partial

   @Html.Render("ParialView1", Model.model1);

   @Html.Render("PartialView2", Model.model2 }

此版本传递请求每个部分视图渲染的特定模型。

Render()可能是将数据传递到部分视图的最常见模型,但它实际上取决于您希望如何传递数据以及控制器的结构。当我认为部分视图应该能够用作视图和部分视图时,我总是使用Action