我正在Visual Studio 2013上使用带有EF框架的Asp.net MVC 5创建基于Web的软件。
我有一个视图页面,需要在给定时间显示两个部分视图。部分视图与2个模型类相关联,因此将来自两个控制器。如何指定部分视图应该显示在哪个框架上?
我是MVC 5的新手,所以我无法提供更详细的说明。任何可以让我得到以下结果的建议都会有所帮助
答案 0 :(得分:3)
至少有两个选择:
使用@Html.Action
(两次)来使用单独的控制器调用渲染部分视图:
e.g。
@Html.Action("action1", "Controller", new { id = Model.idOfPart1 }
@Html.Action("action2", "Controller", new { id = Model.idOfPart2 }
如果id是关键/查找值,如果它们是完整视图,通常会传递给控件。
Action()
导致对指定控制器的操作进行完全调用,并在父视图中就地生成结果。
如果您希望将组合的ViewModel传递给父视图,并将模型的某些部分发送到每个局部视图,则可以使用@Html.Partial
:
@Html.Render("ParialView1", Model.model1);
@Html.Render("PartialView2", Model.model2 }
此版本传递请求每个部分视图渲染的特定模型。
Render()
可能是将数据传递到部分视图的最常见模型,但它实际上取决于您希望如何传递数据以及控制器的结构。当我认为部分视图应该能够用作视图和部分视图时,我总是使用Action
。