【问题标题】:Populating a dropdownlist from a value type从值类型填充下拉列表
【发布时间】:2026-01-11 16:30:01
【问题描述】:

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

我的控制器如下所示:

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

我的观点是这样的:

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

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

【问题讨论】:

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


    【解决方案1】:

    因为您从 MyListOfOptions 创建了 SelectList,而 SelectList 您可以使用“文本”和“值”

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

    但是您不需要再次包装 SelectList,所以这也可以:

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

    【讨论】:

    • 完美!我想那会是那么简单
    【解决方案2】:

    解决这个问题的一个简单方法是使用ViewModel

    dropdownlist set selected value in MVC3 Razor

    MVC 3 Layout Page, Razor Template, and DropdownList

    【讨论】: