我必须使用循环从表中检索一组对象。但我得到了一个错误
传递到字典中的模型项的类型为'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; }
}
我需要获得董事会所有人的姓名,名称和电话,但我收到的错误是。
如何修复此错误?
如何从表中检索数据集合?
答案 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);
}