在MVC4中加载多个视图

时间:2013-12-26 11:58:58

标签: c# asp.net-mvc-4 layout

我刚刚从PHP CI(MVC)切换到ASP.NET MVC4,我也是.net框架的新手。我研究了在MVC4中加载多个视图,但我总是发现加载视图有多个模型等.... 我想要做的是在一个页面中加载多个视图。

例如:

我有一个视图left.cshtml

<div>Hello im on the left section</div>
@RenderBody();

并有下一个视图main.cshtml

<div class="left"> // should come in the left section of the page
    @{Layout = "left.cshtml"}
</div>
<div class="right">
    Contents at the right and many more here
</div>

从上面我的预期是:

// Left section                     Right section

Hello im on the left section |  Contents at the right
                             |  and many more here
                             |
                             |
                             |
                             |

但结果是

Hello im on the left section
Contests at the right and many more here

和CSS也很好。 请帮帮....

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找部分视图。所以使用

@Html.Partial("ViewName")

或者

@{ Html.RenderPartial("ViewName");  }

答案 1 :(得分:0)

Layout是您的主页,它通过RenderBody呈现的“周围”。因此,如果您希望右侧部分始终相同,并将不同的视图替换为左侧部分,则可以创建包含页面“结构”的布局,然后将不同的视图呈现在其中。 你的代码应该是:

layout.chtml:

<div class="left"> // should come in the left section of the page
 //Your left.chtml will be substituted here
   @RenderBody();
</div>
<div class="right">
    Contents at the right, they are always the same
</div>

left.chtml

//This line shows which layout you are going to use
@{Layout = "left.cshtml"}
//Whole code below is substitued in plase of "RenderBody" of your layout page
Contents at the left. 

P.S你必须返回左视图,而不是你的控制器中的laout视图。