我正在尝试在MVC 3中显示网格, 我收到以下错误:
必须先绑定数据源才能执行此操作。
这是我的模特:
public class EmpModel
{
public string UserName { get; set; }
public string Password { get; set; }
public int EmpID { get; set; }
public string EName { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public string Qualification { get; set; }
public string Address { get; set; }
public string EmailID { get; set; }
public int DeptID { get; set; }
public string DeptName { get; set; }
public string DeptHead { get; set; }
public int Deptnumber { get; set; }
}
这是控制器:
TestMVCEntities testEmp = new TestMVCEntities();
EmpModel empmod = new EmpModel();
public ActionResult Index()
{
List<EmpModel> emp = new List<EmpModel>();
return View();
}
这是我的观点:
@model IEnumerable<EmpApplication.Models.EmpModel>
@{
ViewBag.Title = "Index";
WebGrid grid = new WebGrid();
}
<h2>List of Employee</h2>
@grid.GetHtml(columns: new [] {
grid.Column("EmpID"),
grid.Column("EName"),
grid.Column("EmailID"),
grid.Column("Qualification")
})
答案 0 :(得分:4)
您必须将source
数据作为参数传递。 WebGrid期望IEnumerable<Object>
或IEnumerable<dynamic>
为source
。
您必须将列表返回到您的视图:
public ActionResult Index()
{
List<EmpModel> emp = new List<EmpModel>();
return View(emp);
}
然后将其传递给WebGrid构造函数:
@{
ViewBag.Title = "Index";
WebGrid grid = new WebGrid(Model);;
}
答案 1 :(得分:0)
我确定它的作品......
public ActionResult Index()
{
List<EmpModel> emp = new List<EmpModel>();
return View(emp.AsEnumerable());
}
您只需将后续列表更改为enumerable
。