如何在<select list =“”item =“”> </select>中插入不同的值

时间:2010-08-05 10:21:34

标签: c# asp.net-mvc

我编写了一个查询来从表中获取结果。

var queryres = (from r in objTestEntities.module_where r.PID ==id select r).ToList();
try
{
for (int j = 0; j < queryres.Count; j++)
{
string sModuleName = queryres[j].Title;
int iModuleId = queryres[j].ModuleID;

string sVersion = queryres[j].VersionNo;
sModuleNameList.Add(new SelectListItem
{
Text = sModuleName,
Value = iModuleId.ToString(),
Selected = true
});



sVersionList.Add(new SelectListItem
{
Text = sVersion,
Value = sVersion,
Selected = true
});

}


ViewData["Module"] = sModuleNameList;
ViewData["Version"] = sVersionList;
}

现在我想要类型的sVersionList应具有不同的值。 但是从queryres变量我得到模块名称,不同的模块可以有相同的版本。

从版本列表组合中的上面的代码我得到多次相同的版本。

但我希望一个版本只能看一次。

我也尝试了这个:ViewData [“Version”] = sVersionList.Distinct(); 但是,由此我也无法在版本列表组合中显示distict值。

1 个答案:

答案 0 :(得分:3)

var moduleNameList = queryres.Select(o => new SelectListItem 
{ 
    Text = o.Title, Value = o.ModuleID.ToString(), Selected = true 
});
var versionList = queryres
    .Select(o => o.VersionNo)
    .Distinct()
    .Select(o => new SelectListItem 
    { 
        Text = o, Value = o, Selected = true 
    });