无法显示来自 ViewBag 的数据
Can't display data from the ViewBag
我的数据库中有一个table,我想获取不重复的名称字段。
但是我得到这个错误:
'string' 不包含 'ID' 的定义。
当我调试我的代码时,我发现变量充满了数据,直到 foreach 错误出现。
在我的控制器中:
public ActionResult Create()
{
HREntities db = new HREntities();
var areas = db.Area.Select(area => area.Area + area.ID).Distinct().ToList();
if(areas != null)
ViewBag.areas = areas;
return View();
}
视图代码:
@foreach (var area in ViewBag.areas)
{
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<input name="group4" type="radio" id="@area.ID" class="radio-col-blue-grey" />
<label for="@area.ID">@area.Area</label>
</div>
}
在控制器的 Create
方法中,您正在以下行创建 List<string>
:
var areas = db.Area.Select(area => area.Area + area.ID).Distinct().ToList();
然后将此列表传递给 ViewBag,但由于它现在是字符串列表而不是 List<Area>
,因此它不会有 ID 属性。
在调试时,检查变量的类型areas
,您就会看到。 foreach 循环中的标记代码应如下所示:
<input name="group4" type="radio" id="@area" class="radio-col-blue-grey" />
<label for="@area">@area</label>
您的 .Select()
查询是 returning IEnumerable<string>
,而不是 Area
对象的集合(并且 string
没有 属性 名为 Id
)
根据您的查询,您的查看代码应该只是
@foreach (var area in ViewBag.areas)
{
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<input name="group4" type="radio" id="@area" class="radio-col-blue-grey" />
<label for="@area">@area</label>
</div>
}
或者您需要return您的模型集合
我的数据库中有一个table,我想获取不重复的名称字段。 但是我得到这个错误:
'string' 不包含 'ID' 的定义。 当我调试我的代码时,我发现变量充满了数据,直到 foreach 错误出现。
在我的控制器中:
public ActionResult Create()
{
HREntities db = new HREntities();
var areas = db.Area.Select(area => area.Area + area.ID).Distinct().ToList();
if(areas != null)
ViewBag.areas = areas;
return View();
}
视图代码:
@foreach (var area in ViewBag.areas)
{
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<input name="group4" type="radio" id="@area.ID" class="radio-col-blue-grey" />
<label for="@area.ID">@area.Area</label>
</div>
}
在控制器的 Create
方法中,您正在以下行创建 List<string>
:
var areas = db.Area.Select(area => area.Area + area.ID).Distinct().ToList();
然后将此列表传递给 ViewBag,但由于它现在是字符串列表而不是 List<Area>
,因此它不会有 ID 属性。
在调试时,检查变量的类型areas
,您就会看到。 foreach 循环中的标记代码应如下所示:
<input name="group4" type="radio" id="@area" class="radio-col-blue-grey" />
<label for="@area">@area</label>
您的 .Select()
查询是 returning IEnumerable<string>
,而不是 Area
对象的集合(并且 string
没有 属性 名为 Id
)
根据您的查询,您的查看代码应该只是
@foreach (var area in ViewBag.areas)
{
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<input name="group4" type="radio" id="@area" class="radio-col-blue-grey" />
<label for="@area">@area</label>
</div>
}
或者您需要return您的模型集合