ToSelectList
我有的方法:
public static IList<SelectListItem> ToSelectList<T>(this IEnumerable<T> itemsToMap, Func<T, string> textProperty, Func<T, string> valueProperty, Predicate<T> isSelected)
{
var result = new List<SelectListItem>();
foreach (var item in itemsToMap)
{
result.Add(new SelectListItem
{
Value = valueProperty(item),
Text = textProperty(item),
Selected = isSelected(item)
});
}
return result;
}
当我在这里调用这个方法时:
public static List<SelectListItem> lesgeverList(int selectedID) {
NASDataContext _db = new NASDataContext();
var lesg = (from l in _db.Lesgevers
where l.LG_Naam != "leeg"
orderby l.LG_Naam
select l).ToSelectList(m => m.LG_Naam + " " + m.LG_Vnaam, m => m.LG_ID.ToString(), m => m.LG_ID == selectedID);
return lesg.ToList();
}
List<SelectListItem>
我得到的已选择selectedID
。
现在,当我想要多个选定项目时,我会给出一个 Lesgevers 列表
public static List<SelectListItem> lesgeverList(List<Lesgever> lg) {
NASDataContext _db = new NASDataContext();
var test = (from l in _db.Lesgevers
where l.LG_Naam != "leeg" && lg.Contains(l)
orderby l.LG_Naam, l.LG_Vnaam
select l).ToList();
var lesg = (from l in _db.Lesgevers
where l.LG_Naam != "leeg"
orderby l.LG_Naam, l.LG_Vnaam
select l).ToSelectList(m => m.LG_Naam + " " + m.LG_Vnaam, m => m.LG_ID.ToString(), m => lg.Contains(m));
return lesg.ToList();
}
var test
确实返回了我Lesgevers
在 lg 列表中的那个,在我的 中var lesg
,根本没有选择 selectlistitem。
我的错误在哪里?:) 我该如何解决这个问题?