首页 > 解决方案 > 下拉列表不默认为选定项目

问题描述

我的控制器中有以下代码。请注意,如果 companyId 为 4,我喜欢将其作为下拉列表中的默认值:

     var company = _conpanyService.companyLst().ToList();

     var items = new List<SelectListItem>();

     foreach (var item in company)
     {
         items.Add(new SelectListItem()
         {
           Text = item.CompanyName,
           Value = item.CompanyID.ToString(),
           Selected = item.CompanyID == 4 ? true : false
         });
     }         

     // I double checked the items list and it does have companyID of 4 set to Select to true. Not sure why it did not propagate to the view. 

     ViewBag.CompanyList = items;

视图内容:

     @Html.DropDownList("CompanyID", (IEnumerable<SelectListItem>)ViewBag.CompanyList, "Please Select", new { @class = "form-control" })

问题是,即使我在 View 上查看源代码,所选内容也无法通过。我不确定为什么它没有被选中。

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

解决方案


尝试这个。在控制器中,

var company = _conpanyService.companyLst().ToList();
ViewBag.CompanyList = new SelectList(company, "CompanyId", "CompanyName", 4);

在视图中,

@Html.DropDownList("CompanyId", (SelectList) ViewBag.CompanyList)

推荐阅读