HTML呈现模型为字符串

时间:2017-03-31 13:05:08

标签: c# asp.net-mvc

这是另一个问题的分支。我将列表传递到局部视图中,该视图是主视图的一部分。但是,当我查看页面时,我看到:

System.Collections.Generic.List`1[...Models.OutcomeArea] List

现在,列表正在正确呈现,但我不确定为什么上面的行显示在html中。

Index.cshtml:

@using (Html.BeginForm("Index", "Search", FormMethod.Get, new { @class = "form-inline" }))
{
    @Html.Action("_Checklist")
}

_Checklist.cshtml:

@Model List<....Models.OutcomeArea>
<div class="row">
    <div class="col-md-4">
        <h4 class="text-center">Outcomes</h4>
        <p>
        @foreach (var list in Model)
        {
            <input type="checkbox" id="@list.ID" name="@list.ID" /> @list.Category <br />
        }
        </p>
    </div>
</div>

SearchController:

public PartialViewResult _Checklist()
    {
        var outcomeAreas = db.OutcomeArea.Where(oa => oa.Category != "").GroupBy(oa => oa.Category).Select(oa => oa.FirstOrDefault());
        return PartialView("_Checklist", outcomeAreas.ToList());
    }

2 个答案:

答案 0 :(得分:0)

没关系,我有它的工作。我需要使用小写@model作为_Checklist.cshtml。

@model List<....Models.OutcomeArea>

答案 1 :(得分:0)

哇。花了一段时间才发现了这个bug。这很棘手。您的模型声明是问题所在:

@Model List<....Models.OutcomeArea>

那应该是@model,小写。你现在打算打印Model