1

我想从 4 个不同的表中显示 4 个不同的列表,我Partial View在他们尊敬的控制器中创建了一个 4 个表,但它没有被渲染,它给出了一个错误;

传入字典的模型项的类型为“Medical_App.Models.MA_Area”,但此 > 字典需要类型为 >“System.Collections.Generic.IEnumerable`1[Medical_App.Models.MA_Area]”的模型项。

如果有其他方法/替代方法,请分享。

  public PartialViewResult AreaList()
    {
        var result = db.MA_Area.OrderBy(d => d.AreaName);
        return PartialView(result);
    }



@model IEnumerable<Medical_App.Models.MA_Area>
        @Html.DisplayNameFor(model => model.CityId)
        @Html.DisplayNameFor(model => model.AreaName)

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.CityId)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.AreaName)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.AreaId }) |
        @Html.ActionLink("Details", "Details", new { id=item.AreaId }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.AreaId })
    </td>
</tr>

}

4

3 回答 3

1

您正在传递一个集合,但试图显示一个实例。你可能需要类似的东西:

@model IEnumerable<Medical_App.Models.MA_Area>
@{foreach(var item in Model)
{
@Html.DisplayNameFor(model => item .CityId)
@Html.DisplayNameFor(model => item .AreaName)
}

然后你需要证明每个项目的一些布局结构。

祝你好运

于 2013-08-13T11:08:49.740 回答
1

听起来您需要将正确的模型传递给局部视图。默认情况下,调用局部视图会传递父视图具有的模型。

因此,如果您将 4 个列表传递给主视图,则每个部分调用都应包含视图的正确 IEnumarable 对象。

您可以通过这样的部分调用传递模型:

 @Html.Partial("_partialName", model)

希望这可以帮助

于 2013-08-13T11:02:27.700 回答
0

您从控制器/视图传递了项目列表,即(列表)。但是您创建了局部视图并接受模型的单个项目,即在您的局部视图()顶部的 Medical_App.Models.MA_Area @model Medical_App.Models.MA_Area。从您的控制器/视图传递模型的单个实例或在您的透视视图中接受模型列表。

于 2013-08-13T11:03:22.290 回答