传递的模型项类型为&System; Series.Collections.Generic.List,但此字典需要&System; System.Collections.Generic.IEnumerable

时间:2014-07-21 11:32:02

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

我是新手,并且传递到目录的错误模型项的类型为system.cllection.generic.list,但此目录需要system.collection.ienumerable

请帮我解决此错误。 我正在粘贴我的控制器并在此处查看

控制器

      public ActionResult DisplayComment()
    {
        var result = Manager.GetUsersWhoHaveConsumedFreeCredit();
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        var callHistory = serializer.Deserialize<List<CallHistory>>(result);
        YelloAdminDbContext db = new YelloAdminDbContext();
        if (callHistory != null)
        {
            foreach (var item in callHistory.ToList())
            {

                int Id = int.Parse(item.Login);
                var note = db.Note.OrderByDescending(i => i.Id).Where(i => i.LoginId == Id).FirstOrDefault();
                if (note != null && note.LoginId == Id)
                {
                    var temp = note.Comments.ToList();
                    return PartialView(temp);
                }
                else
                    return Content("No Comments");

                }

            }
        return Content("No Comments");
        }

查看

      @model IEnumerable<MyYello.Admin.Models.CallNote>


   <table>
<tr>

    <th>
        @Html.DisplayNameFor(model => model.Comments)
    </th>

    <th></th>
</tr>

 @foreach (var item in Model) {
    <tr>

    <td>
        @Html.DisplayFor(modelItem => item.Comments)
    </td>


    </tr>
  }

  </table>

1 个答案:

答案 0 :(得分:0)

此处您正在重新列出类型通讯的列表:

var temp = note.Comments.ToList();
                    return PartialView(temp);

在您的视图中强烈输入类型为IEnumerable<MyYello.Admin.Models.CallNote>

的模型

在View中你写过,所以它与你发生冲突当你传递不同的类型时,View期望不同的类型:

   @model IEnumerable<MyYello.Admin.Models.CallNote>

您应该从您的操作返回IEnumerable<MyYello.Admin.Models.CallNote>,或者如果您需要传递评论类型,请在视图中更改:

@model List<MyYello.Admin.Models.Comments>