如何从此Linq查询填充SelectList?
问题描述:
我想将这个查询的结果返回到我可以用来填充SelectList的东西。我尝试了一个NameValueCollection和一个IEnumerable,但都失败了。如何从此Linq查询填充SelectList?
给出此代码的选项是什么?此代码不起作用,但查询正是我想要的。
public IEnumerable GetValidAssociationsForSelectList()
{
var associations = (from a in context.Associations
join u in context.Units on a.AssociationKey equals u.AssociationKey
where a.CCRRecording != null && a.CCRRecording.ToString() != ""
orderby a.LegalName
select new { a.AssociationKey, LegalName = a.LegalName.Replace("'", "") }).Distinct();
}
答
您应该返回协会查询:
public IEnumerable GetValidAssociationsForSelectList() {
var associations = (....)
return associations;
}
然后遍历了IEnumerable填充在DropDownList的listItems中,这样的事情:
foreach (var item in GetValidAssociationsForSelectList())
{
ddlAssociations.Items.Add(new ListItem(item.AssociationKey, item.LegalName));
}
答
您需要使您的select
语句的返回类型与您的IEnumerable匹配。
这里是去了解的一种方式:
public IEnumerable<ListItem> GetValidAssociationsForSelectList() {
var associations = ...;
return associations.Select(a => new ListItem(item.AssociationKey, item.LegalName));
}