从值类型填充下拉列表

时间:2012-01-26 15:46:10

标签: asp.net-mvc-3 html.dropdownlistfor

这显然是非常基本的问题,但我还没有找到解决方法:我正在尝试为我的Model的整数属性创建一个下拉列表,因此我可以使用默认的值列表填充下拉列表。

我的控制器看起来像这样:

ViewBag.MyListOfOptions = new SelectList(new int[] { 5, 15, 25, 50 });

我的观点如下:

@Html.DropDownListFor(model => model.MyIntField, new SelectList(ViewBag.MyListOfOptions , [dataValueField], [dataTextField]))

我发现的大多数示例 dataValueField dataTextField 是创建下拉列表时应该使用的属性,但我还没有找到如何使用的方法带有值类型的DropDownListFor

2 个答案:

答案 0 :(得分:2)

因为您从SelectList创建了MyListOfOptions已经是SelectList,您可以使用“文字”和“价值”

@Html.DropDownListFor(model => model.MyIntField, 
    new SelectList(ViewBag.MyListOfOptions , "Value", "Text"))

但是你不需要再次包装一个SelectList,所以这也可以工作:

@Html.DropDownListFor(model => model.MyIntField,
    (IEnumerable<SelectListItem>)ViewBag.MyListOfOptions)

答案 1 :(得分:1)

解决此问题的一种简单方法是使用ViewModel

采用此方法

dropdownlist set selected value in MVC3 Razor

MVC 3 Layout Page, Razor Template, and DropdownList