3 回答

TA貢獻1807條經驗 獲得超9個贊
在第 2 個 foreach 循環中,您將添加到第 1 個列表中,而不是名為 list1 的第 2 個列表。更正如下:
public ActionResult Create()
{
var Sections = _context.Sections.ToList();
var Customers = _context.Customers.ToList();
List<SelectListItem> list1 = new List<SelectListItem>();
foreach (var item in Customers)
{
list1.Add(new SelectListItem { Text = item.Customer_Name, Value = item.Customer_Id.ToString() });
}
ViewBag.Customers = list1;
List<SelectListItem> list2 = new List<SelectListItem>();
foreach (var item in Sections)
{
list2.Add(new SelectListItem { Text = item.Section_Name, Value = item.Section_Id.ToString() });
}
ViewBag.Sections = list2;
return View();
}

TA貢獻1851條經驗 獲得超5個贊
問題在于您的第二個 for-each 循環,您將其添加到實際上面向客戶的第一個列表中。SelectListItem
此外,簡化您的 GET 方法,如下所示。它將降低復雜性。Create
// GET: Contracts/Create
[HtttpGet]
public ActionResult Create()
{
var sections = _context.Sections.ToList();
var customers = _context.Customers.ToList();
ViewBag.SectionSelectList = new SelectList(sections,"Section_Id","Section_Name");
ViewBag.CustomerSelectList = new SelectList(customers,"Customer_Id","Customer_Name");
return View();
}
然后在視圖中將 s 替換為以下內容:@Html.DropDownListFor
@Html.DropDownListFor(model => model.CustomerId, ViewBag.CustomerSelectList, "Select customers", new { @class = "form-control" })
@Html.DropDownListFor(model => model.SectionsId, ViewBag.SectionSelectList , "Select Sections", new { @class = "form-control" })

TA貢獻1934條經驗 獲得超2個贊
試試這個:
// GET: Contracts/Create
public ActionResult Create()
{
var listOfCustomers = new List<SelectListItem>();
foreach (var item in _context.Customers.ToList())
{
listOfCustomers.Add(new SelectListItem { Text = item.Customer_Name, Value = item.Customer_Id.ToString() });
}
ViewBag.Customers = listOfCustomers;
var listOfSections = new List<SelectListItem>();
foreach (var item in _context.Sections.ToList())
{
listOfSections.Add(new SelectListItem { Text = item.Section_Name, Value = item.Section_Id.ToString() });
}
ViewBag.Sections = listOfSections;
return View();
}
- 3 回答
- 0 關注
- 144 瀏覽
添加回答
舉報