如何从此Linq查询中填充SelectList?

时间:2010-11-01 19:55:37

标签: linq-to-sql asp.net-mvc-2 linq-to-entities

我想将此查询的结果返回到可用于填充SelectList的内容中。我尝试了一个NameValueCollection和一个IEnumerable,但都失败了。

根据此代码,我有哪些选择?此代码不起作用,但查询正是我想要的。


        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();
        }

2 个答案:

答案 0 :(得分:0)

您应该在查询中返回关联:

public IEnumerable GetValidAssociationsForSelectList() {

    var associations = ( .... )

    return associations;

}

然后遍历IENumerable以填充DropDownList中的ListItems,如下所示:

foreach (var item in GetValidAssociationsForSelectList())
{
    ddlAssociations.Items.Add(new ListItem(item.AssociationKey, item.LegalName));
}

答案 1 :(得分:0)

您需要使select语句的返回类型与您的IEnumerable匹配。

这是一种方法:

public IEnumerable<ListItem> GetValidAssociationsForSelectList() {
    var associations = ...;
    return associations.Select(a => new ListItem(item.AssociationKey, item.LegalName));
}