Return 要查看的列表
Return List To View
每次我循环查看 viewbag 时都会出现此错误
object' does not contain a definition for 'Name'
这是我的行动
public ActionResult AssignTask()
{
var List = db.Employees.Select(x => new
{
id = x.id,
Name = x.Name
}).ToList();
ViewBag.Emp_data = List;
return View();
}
这是我的看法
您正在使用视图不知道的匿名类型。
您仍然应该在 select:
中使用 Employee
class
var List = db.Employees.Select(x => new Employee
{
id=x.id,
Name=x.Name
}).ToList();
顺便说一句,你应该使用View Model而不是viewbag来承载数据。
这个代码returns一个List<anonymous>
var List = db.Employees.Select(x => new
{
id = x.id,
Name = x.Name
}).ToList();
所以这就是为什么您无法在视图的 foreach
循环中访问 Name
属性。
我建议使用强类型的 ViewModel class 来保存数据并避免使用 ViewBag。 ViewModel 应该位于 Models 文件夹中,如下所示
public class EmployeeViewModel
{
public int ID { get; set; }
public string Name { get; set; }
}
如下更改您的控制器
public ActionResult AssignTask()
{
var model = db.Employees.Select(x => new EmployeeViewModel
{
ID = x.id,
Name = x.Name
}).ToList();
return View(model);
}
在你看来
@model List<EmployeeViewModel>
<h2>AssignTask</h2>
<div class="row">
<div class="form-group">
<div style="overflow-y:scroll; overflow-x:hidden; height:400px;">
@foreach (var item in Model)
{
<div class="col-lg-4 col-md-4">
<label>@item.Name</label>
<input type="checkbox" class="checkbox" name="SelectEmp" value="@item.ID" />
</div>
}
</div>
</div>
</div>
每次我循环查看 viewbag 时都会出现此错误
object' does not contain a definition for 'Name'
这是我的行动
public ActionResult AssignTask()
{
var List = db.Employees.Select(x => new
{
id = x.id,
Name = x.Name
}).ToList();
ViewBag.Emp_data = List;
return View();
}
这是我的看法
您正在使用视图不知道的匿名类型。 您仍然应该在 select:
中使用Employee
class
var List = db.Employees.Select(x => new Employee
{
id=x.id,
Name=x.Name
}).ToList();
顺便说一句,你应该使用View Model而不是viewbag来承载数据。
这个代码returns一个List<anonymous>
var List = db.Employees.Select(x => new
{
id = x.id,
Name = x.Name
}).ToList();
所以这就是为什么您无法在视图的 foreach
循环中访问 Name
属性。
我建议使用强类型的 ViewModel class 来保存数据并避免使用 ViewBag。 ViewModel 应该位于 Models 文件夹中,如下所示
public class EmployeeViewModel
{
public int ID { get; set; }
public string Name { get; set; }
}
如下更改您的控制器
public ActionResult AssignTask()
{
var model = db.Employees.Select(x => new EmployeeViewModel
{
ID = x.id,
Name = x.Name
}).ToList();
return View(model);
}
在你看来
@model List<EmployeeViewModel>
<h2>AssignTask</h2>
<div class="row">
<div class="form-group">
<div style="overflow-y:scroll; overflow-x:hidden; height:400px;">
@foreach (var item in Model)
{
<div class="col-lg-4 col-md-4">
<label>@item.Name</label>
<input type="checkbox" class="checkbox" name="SelectEmp" value="@item.ID" />
</div>
}
</div>
</div>
</div>