我想创建供应商下拉列表。我的数据库中有一个 Vendors 表,其中包含 VendorID 和 CompanyID。 Company 表包含 CompanyID 和名称。
我想要一个下拉列表,其中包含以 VendorID 作为值、以公司名称作为文本的项目。但我不知道如何从相关表中获取名称字段以放入下拉列表中,因此我将 VendorID 作为值和文本。这就是我现在所拥有的。
我正在传递一个包含以下内容的模型:
public IEnumerable<Vendor> Vendors { get; set; }
在我的 Controller 中,我设置 Vendors 的值,如下所示:
MyDBEntities _entities = new MyDBEntities();
Vendors = _entities.Vendors;
这是我在页面上的下拉列表:
<%= Html.DropDownListFor(m => m.VendorId, new SelectList(Model.Vendors, "VendorID", "VendorID"), "- Select a Vendor -")%>
我认为我可以创建一个自定义函数 - GetVendorsForDropdown - 它将仅返回我需要的数据,并将我的模型更改为包含 IEnumerable<Something>
。但我不知道返回类型应该是什么。
最佳答案
使用 linq 并将它们作为 ListItem 返回
MyDBEntities _entities = new MyDBEntities();
var data = from v in _entities.Vendors
from c in _entities.Companies
where v.CompanyId = c.CompanyId
select new ListItem{Value = v.VendorId, Text = c.CompanyName};
return data;
关于c# - 使用多个表中的数据创建下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557547/