使用Asp.net中的ViewBag填充下拉列表

时间:2018-02-12 16:44:43

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

我创建了一个名为ManageSalesman的View,它有两个名为AddOrEdit的子视图,它包含一个表单。在这里,我想在数据库中的Vendor表的下拉列表中填充供应商公司列表,因为我在以下代码中将它们放入视图包中。

ViewBag.Vendor = new SelectList(db.Vendors, "Id", "name");

并通过以下代码行在AddOrEdit中创建下拉列表。

 @Html.DropDownListFor(model => model.CompanyId, new SelectList(ViewBag.Vendor, "Id", "name"), "Select Vendor Company", new { @class = "form-control" })

但是当我运行它时,它会告诉我:参数null异常"附加信息:值不能为空。"请告诉我我做错了什么。

2 个答案:

答案 0 :(得分:1)

使用以下代码创建下拉控件。

@Html.DropDownListFor(model => model.CompanyId, (SelectList)ViewBag.Vendor, "Select Vendor Company", new { @class = "form-control" })

请参阅this问题了解详情。

答案 1 :(得分:0)

我没有在控制器中列出选定的供应商。正确的方法如下。

List<Vendor> VendorList = db.Vendors.ToList();
ViewBag.Vendor = new SelectList(VendorList, "Id", "name");