c# - 使用多个表中的数据创建下拉列表

标签 c# asp.net asp.net-mvc

我想创建供应商下拉列表。我的数据库中有一个 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/

相关文章:

asp.net - 无法将索引 35 处的字节 [FC] 从指定的代码页转换为 Unicode

c# - 在 asp.net mvc 中更改 session 变量超时的默认值

asp.net-mvc - IdentityDbContext<ApplicationUser> vs DbContext for Repository

asp.net - 在asp.net中模拟请求?

c# - 接口(interface)和类方法的注释应该如何不同

c# - 连接字符串有时在 ServiceBusTrigger 中不可用

c# - 是否有与 python 的 os.path.normpath 等效的 C#?

javascript - 需要像 Firefox 的调试器一样获取 HTML Element 的 Layout 信息

javascript - 单独定义服务和工厂时,Angular 不起作用

c# - double z=x-y 是否保证 IEEE 754 float 的 z+y==x?