我的数据库中有一个表,我想获取名称字段而不重复。 但是我得到了这个错误:
'string'不包含'ID'的定义。 当我调试我的代码时,我发现变量已经满了数据,直到错误显示出来。
在我的控制器中:
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>
}
答案 0 :(得分:1)
在控制器的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>
答案 1 :(得分:1)
您的.Select()
查询正在返回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>
}
另类,您需要返回模型的集合