是否有可能以某种方式将价格显示在下拉列表旁边,以免弄乱实际的东西?如果是这样,怎么会这样做(从理论上讲)?
有一个当前显示项目名称的下拉列表。试图让它显示名称+价格,但我要么得到错误,要么没有保存到数据库。
控制器:
public ActionResult Buy()
{
List<ShowService.Itemss> itemlist = showklient.GetItems().ToList();
foreach (var item in itemlist)
{
item.Name = item.Name + " || Price: " + item.Price + ":-";
}
ViewBag.Id = new SelectList(itemlist, "Id", "Name");
return View();
}
视图中的下拉列表:
@Html.DropDownListFor(m => m.Id, (IEnumerable<SelectListItem>)ViewBag.Id, "Pick item")
模型如下,
我做错了什么/我错过了什么?
截至目前,它正在显示价格。但它只将ItemId 0发送到数据库。 (更新了代码)
答案 0 :(得分:0)
试试这个:
控制器:
List<ShowService.Itemss> itemlist = showklient.GetItems().ToList();
ViewBag.ItemId= new SelectList(itemlist, "Id", "Name");
查看:
@Html.DropDownList("ItemId", null, "Pick Item")
或强>
@Html.DropDownListFor(m => m.ItemId, (IEnumerable<SelectListItem>)ViewBag.Id, "Pick item")
答案 1 :(得分:0)
试试这个
List<ShowService.Itemss> itemlist = showklient.GetItems().ToList();
foreach (var item in itemlist)
{
item.Name = item.Name + " || Price: " + item.Price + ":-";
}
ViewBag.Id = new SelectList(itemlist , "Id", "Name");
在视图中您在绑定下拉列表中使用 ItemId ,但在您的模式中,您没有任何名为itemId的属性,因此请在 Id 财产如下。
@Html.DropDownListFor(m => m.Id, (IEnumerable<SelectListItem>)ViewBag.Id, "Pick item")