我需要将从DB获取的列表转换为SelectListItem
以便显示下拉列表我已尝试过以下代码
public List<SelectListItem> Liste_proprietaire()
{
List<SelectListItem> selectList = new List<SelectListItem>();
var maListe = (from p in db.reqopt
where (p.categorie.Contains("proprietaire"))
select new
{
str = p.valeur
}).ToList();
foreach (var x in maListe)
{
selectList.Add(x);
}
return selectList;
}
他们在selectList.Add(x)
下给我一个错误,告诉函数Add
有无效的参数。
答案 0 :(得分:1)
x
是匿名类的实例(使用new { }
创建)。您无法立即将其转换为SelectListItem
。
你可以自己做到这一点:
selectList.Add(new SelectListItem() { Value = x.str });
或直接从LINQ表达式创建SelectListItem
项:
select new SelectListItem()
{
Value = p.valeur
}
答案 1 :(得分:1)
您必须使用SelectListItem
代替anonymous
类型。试试这个。
public List<SelectListItem> Liste_proprietaire()
{
List<SelectListItem> selectList = new List<SelectListItem>();
var maListe = (from p in db.reqopt
where (p.categorie.Contains("proprietaire"))
select new SelectListItem
{
Text = p.valeur,
Value = p.value //Put your value column here
}).ToList();
foreach (var x in maListe)
{
selectList.Add(x);
}
return selectList;
}
注意:您必须相应地更新Value
的{{1}}属性。