M-V-C:如何在编辑模式下获取或指示列表框中的选定项?
M-V-C: How to get or indicate Selected Items in List box in the Edit Mode?
我正在创建多 Select 列表框。我能够成功地将项目从模型渲染到列表框。以下是我的代码:
属性
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
编辑的所有列表框,例如在列表框中有三个项目:现代、丰田和宝马,我 select 宝马和丰田和创建分配。现在,当我返回编辑视图时,它应该突出显示 BMW 和 Toyota。
我参考了 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);
}
您可以将其作为采用选定值的 SelectList 传递
public SelectList( IEnumerable items, object selectedValue)
你的情况
@Html.DropDownListFor(n => n.selectedCarTypes,
new SelectList(Model.carTypes, Model.SelectedCarTypes))
编辑时您没有设置模型:
Model.carTypes
应该是所有车型的 List<SelectListItem>
和
Model.selectedTypes
应该是所有选定值的 List<string>
我正在创建多 Select 列表框。我能够成功地将项目从模型渲染到列表框。以下是我的代码:
属性
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
编辑的所有列表框,例如在列表框中有三个项目:现代、丰田和宝马,我 select 宝马和丰田和创建分配。现在,当我返回编辑视图时,它应该突出显示 BMW 和 Toyota。
我参考了 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);
}
您可以将其作为采用选定值的 SelectList 传递
public SelectList( IEnumerable items, object selectedValue)
你的情况
@Html.DropDownListFor(n => n.selectedCarTypes,
new SelectList(Model.carTypes, Model.SelectedCarTypes))
编辑时您没有设置模型:
Model.carTypes
应该是所有车型的List<SelectListItem>
和Model.selectedTypes
应该是所有选定值的List<string>