使用Html.Action MVC 4时出错

时间:2016-11-28 15:03:27

标签: asp.net-mvc asp.net-mvc-4

我有这个视图来创建一个菜单,我使用@ Html.Action:

@model SGP.Models.Turma

@{
    ViewBag.Title = "Menu";
}

...
@Html.Action("AvaliacaoLista", "Turma", new { id = Model.TurmaId })

Html.Action中的视图:

@model  List<SGP.Models.PessoaModel2>
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
            <th>Nome</th>
            <th>Numero</th>

            @foreach (String s in ViewBag.Componentes)
            {
                <th>@s</th>
            }

            <th>Nota Final</th>
        </tr>

        @for (int i = 0; i < Model.Count; i++)
        {
            <tr>
                @Html.HiddenFor(x => Model[i].turmaId)
                @Html.HiddenFor(x => Model[i].userid)
                <td>@Model[i].nome</td>
                <td>@Model[i].num</td>

                @for (int a = 0; a < Model[i].am.Count; a++)
                {
                    @Html.HiddenFor(x => Model[i].am[a].AvaliacaoId)
                    <td>@Html.DisplayFor(x => Model[i].am[a].nota)</td>
                }
                <td>@Model[i].notafinal</td>
            </tr>
        }

    </table>
}

这是它在视图中显示的内容: Image with names omitted 有人能告诉我为什么这样做?或者我应该使用其他方式使该表出现在菜单中而不是使用Html.Action? 谢谢 (我只想显示表而不重复标题)

2 个答案:

答案 0 :(得分:2)

您的徽标两次因为您的视图也有(您使用Html.Action调用),所以只需将子视图Layout设置为null

@model  List<SGP.Models.PessoaModel2>
@{
    Layout = null;
}
// your other stuff

答案 1 :(得分:1)

好吧,我可以看出你的问题是什么。你&#34;标题&#34;正在重演。

解决此问题的最简单方法是添加:

@{
    Layout = null;
}

要在其中仅呈现HTML的任何视图。这样,它就不会渲染默认情况下使用视图渲染的布局页面。