帮助我了解如何构建它。 INet上的每个人和每个例子似乎都认为Razor v3 asp.net表单页面的唯一目的是利用DropDownList没有其他目的,只是在没有任何其他上下文的情况下在页面上显示下拉列表。
我正在做的是构建一个数据输入页面,使用户能够在数据库中创建一个Item ... think pencil,socks或cars ...的记录。项目的两个但不是唯一的属性是1)它的订单数量{1,2,3,...}和......这是我的麻烦开始的地方... 2)它的度量单位,UOM, {每个,案例,重量,......}
我有一个页面,其中包含Item的模型。这很好用。现在我正在尝试将页面上的UOM字段从TextBoxFor()更改为DropDownList()。
如何使用基于UOMModel的谨慎的选项列表填充下拉列表,其中页面基于ItemModel?
答案 0 :(得分:3)
正如@Brian Mains在评论中所说,您需要将数据转换为SelectList
类,以便将其与DropDownList
一起使用。你可以这样做:
public SelectList GetSelectList(List<UOMModel> model)
{
var selectListItem = new List<SelectListItem>();
foreach (var item in model)
{
selectListItem.Add(new SelectListItem { Value = item.Value, Text = item.Text});
}
return new SelectList(selectListItem, "Value", "Text");
}
然后使用ViewBag
将其传递给您的视图:
//Action
ViewBag.UOMList = GetSelectList(UOMList);
//View
@Html.DropDownList("UOM", ViewBag.UOMList as SelectList, new { })