在mvc4中渲染主视图内的部分视图

时间:2015-01-02 11:32:02

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

我在Views / Shared文件夹下有4个视图。

  1. 出勤Track.cshtml(主视图)
  2. _Attendance.cshtml(部分视图)
  3. _Leaves.cshtml(部分视图)
  4. _Efforts.cshtml(部分视图)
  5. 尝试在主视图中渲染3个视图,但无法渲染。不知道在哪里做错了。 用于呈现部分视图的主视图中的代码:

    <div id="RenderAttendance">
     @Html.Partial("~/Views/Shared/_Attendance.cshtml");
    </div>
    <div id="RenderLeaves" >
     @Html.Partial("~/Views/Shared/_Leaves.cshtml");
    </div>
    <div id="RenderEfforts" >
     @Html.Partial("~/Views/Shared/_Efforts.cshtml");
    </div>
    

2 个答案:

答案 0 :(得分:2)

Hai请尝试如下

<div id="RenderAttendance">
 @Html.Partial("_Attendance");
</div>
<div id="RenderLeaves" >
 @Html.Partial("_Leaves");
</div>
<div id="RenderEfforts" >
 @Html.Partial("_Efforts");
</div>

注意:如果您的部分视图包含模型类,请尝试使用以下

<div id="RenderAttendance">
 @Html.Partial("_Attendance", new ModelClassName());
</div>
<div id="RenderLeaves" >
 @Html.Partial("_Leaves", new ModelClassName_2());
</div>
<div id="RenderEfforts" >
 @Html.Partial("_Efforts", new ModelClassName_3());
</div>

答案 1 :(得分:0)

我的部分视图被命名为&#34; 网格&#34;在名为&#34; Control &#34;的文件夹中在&#34; 视图&#34;下目录。
我不得不使用:

@Html.Partial("/Views/Control/Grid")

一旦我这样做,MVC就可以加载它了。
是的,我意识到我应该用Underscore作为我的部分视图的前缀,但是因为我将它们全部组织在&#34; Control&#34;文件夹,这是我表达目的的方式 当我从Web窗体迁移到MVC时,它帮助我将部分视图视为可添加到整页视图的可重用自定义用户控件。