我正在创建多选列表框。我能够成功地将项目从模型渲染到列表框。以下是我的代码:M-V-C:如何在编辑模式下获取或指示列表框中的选定项目?
属性
public IEnumerable<SelectListItem> carTypes { get; set; }
public IEnumerable<string> selectedCarTypes { get; set; }
创建操作
public ActionResult Create()
{
List<SelectListItem> selectListItem = new List<SelectListItem>();
foreach(CarType type in db.CarTypes)
{
SelectListItem item = new SelectListItem()
{
Text = type.Name,
Value = type.Id.ToString()
};
selectListItem.Add(item);
}
Assigning assign = new Assigning();
assign.carTypes = selectListItem;
return View(assign);
}
查看
@Html.ListBoxFor(model=>model.selectedCarTypes,Model.carTypes)
ŧ他的问题是编辑行为。我一直试图突出显示Edit View
中的所有列表框,这些列表框是为特定的AssignId
选择的。在列表框中有三个项目:现代,丰田和宝马,我选择宝马和丰田和创建分配。现在,当我回到编辑视图时,它应该突出显示宝马和丰田。
我参考了here,但没有为我工作。有没有解决这个问题的方法?
修改:这是我Edit Action
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Assigning assign = db.Assigning.Find(id);
if (assign == null)
{
return HttpNotFound();
}
return View(assign);
}
发表您的编辑方法
List<string>
。 – User3250完成。现在请检查请 –
你在Edit action中添加'carTypes'在哪里?您需要在编辑时为选定的车型设置为“selected = true”。 – User3250