我在一个很大的麻烦。我读了4个stackoverflow问题和一个blogpost。我尝试了5种不同的方法来查看多个选择列表中的选定项目。ASP.NET MVC列表框不显示选择的列表项目
我没有成功。
将生成多个选择列表,但不会选择这些项目。我没有更多的想法。
型号:
public class EditableModel
{
public IList<Company> SelectedCompanies { get; set; }
public IList<SelectListItem> SelectListCompanies { get; set; }
}
控制器:
public ActionResult Edit(int id)
{
var service = _serviceDAL.GetEditableModel(id);
if (service!= null)
{
service.SelectListCompanies = GetSelectListCompanies(service.SelectedCompanies);
return View(service);
}
}
private IList<SelectListItem> GetSelectListCompanies(IList<Company> selectedCompanies)
{
List<SelectListItem> items = new List<SelectListItem>();
foreach (Companycompany in _companyService.GetCompanies())
{
items.Add(new SelectListItem
{
Value = company.CompanyId.ToString(),
Text = company.Name,
Selected = selectedCompanies.Any(x => x.CompanyId == company.CompanyId)
});
}
return items;
}
查看
@Html.ListBox("SelectedCompanies", Model.SelectListCompanies, Model.SelectedCompanies.Select(x => x.CompanyId.ToString()))
并没有什么。在选择列表中的项目未选中...
我试过这Multiselect,结果相同,或this one作为当前的解决方案。
你核实了selectedCompanies中的什么?正因为如此,对我而言,选择公司是空洞的。 – MaCron
@Dabagab你尝试使用ListBox与“Model.SelectListCompanies作为MultiSelectList”我的意思是@ Html.ListBox(“SelectedCompanies”,Model.SelectListCompanies作为MultiSelectList,Model.SelectedCompanies.Select(x => x.CompanyId.ToString() )) – hasan
@MaCron这不是empyt。它有11个项目。我打了它:) – Dabagab