如何从表

时间:2017-02-08 10:26:00

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

我必须使用循环从表中检索一组对象。但我得到了一个错误

  

传递到字典中的模型项的类型为'ThaniyamBank.Models.Board',但此字典需要类型为'System.Collections.Generic.List`1 [A.Models.Board]'的模型项

为什么会出现此错误?如何解决此错误?我是否需要更改查询?

控制器

public ActionResult Board()
{
    var res = db.Boards.Select(t => new
    {
        Id = t.Id,
        Name = t.Name,
        Designation = t.Designation,
        Phone = t.Phone
    }).ToList();
    return View(res);
}

视图

@model List<A.Models.Board>

@for (var j = 0; j < Model.Count(); j++)
{
    <tr>
        <td>
            @Html.HiddenFor(m => m[j].Id)
            @Html.HiddenFor(m => m[j].Name)
            @Html.DisplayFor(m => m[j].Designation)
            @Html.DisplayFor(m => m[j].Phone)
        </td>
    </tr>
}

模型类

public partial class Board
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Designation { get; set; }
    public string Phone { get; set; }
    public string PhotoUrl { get; set; }
}

我需要获得董事会所有人的姓名,名称和电话,但我收到的错误是。

如何修复此错误?

如何从表中检索数据集合?

1 个答案:

答案 0 :(得分:0)

您将anonymouse对象传递给View但期望强类型类。

你的控制器方应该是:

public ActionResult Board()
{
    var res = db.Boards
           .Select(t => new A.Models.Board //note this
           {
               Id = t.Id,
               Name = t.Name,
               Designation = t.Designation,
               Phone=t.Phone
           }).ToList();
    return View(res);
}

或者事件更简单,如果您在View上使用数据库模型:

public ActionResult Board()
{
    var res = db.Boards.ToList();
    return View(res);
}