我下面有这两种方法。一个返回基于手机ID的制造商列表,另一个返回基于手机ID(通过手机ID的关系)的手机列表。如何合并它们以返回合并了制造商手机值的一个选择列表?
(MVC的新手)
SelectList GetManufacturers()
{
var manufacturers = ((DataPage<Manufacturer>)ViewData["Manufacturers"]).Records;
return new SelectList(manufacturers, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);
}
SelectList GetHandsets()
{
var list = ((DataPage<Handset>)ViewData["Handsets"]).Records;
return new SelectList(list, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);
}
非常感谢您的帮助,
亲切的问候
最佳答案
下面的代码应该工作。它对您的两个列表执行内部联接,然后将每个记录的制造商名称和手机名称连接在一起,并在两者之间留一个空格。
var manufacturers = ((DataPage<Manufacturer>)ViewData["Manufacturers"]).Records;
var handsets = ((DataPage<Handset>)ViewData["Handsets"]).Records;
var list =
from manufacturer in manufacturers
join handset in handsets on manufacturer.HandsetID equals handset.HandsetID
select new
{
ID = handset.HandsetID,
Name = manufacturer.Name + " " + handset.Name
};
return new SelectList(list, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);