【问题标题】:how to set a default select on dropdown based on a value [duplicate]如何根据值在下拉列表中设置默认选择[重复]
【发布时间】:2018-09-23 13:59:52
【问题描述】:

如果我的设置中的值与我的选择列表中的相同,如何设置默认选择值

一样
         @{
       var pstSelect = (SelectList)ViewData["Printerlist"];
        pstSelect.ForEach(o =>
        {
        if (o.Value== setting.printerName )
        {
        o.Selected = true;
        }
        });
        }
        @Html.DropDownListFor(m => setting.printerName , pstSelect)

我得到了

CS1061:“SelectList”不包含“ForEach”的定义,并且找不到接受“SelectList”类型的第一个参数的扩展方法“ForEach”(您是否缺少 using 指令或程序集引用?)

那我该怎么做呢

【问题讨论】:

  • printerName 的值决定了选择的内容。删除您的 ForEach() - 尝试设置 Selected 属性是没有意义的,因为它无论如何都会被忽略

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


【解决方案1】:

您可以转换/创建与下拉列表匹配的对象列表,然后对列表中的对象执行循环,如果对象值与您的 setting.printerName 匹配,请将其设置为选中

<select >
                                        @foreach (var child in MyData)
                                        {
                                            if (child.Value == setting.printerName)
                                            {
                                                selected = "selected='selected'";
                                            }
                                            else
                                            {
                                                selected = "";
                                            }
                                            <option @selected value="@child.Value">@child.Text</option>
                                        }
                                    </select>

【讨论】:

  • 你究竟如何将该函数调用到@Html.DropDownListFor?
  • 你没有。 @Html.DropDownListFor 是一个剃须刀助手,它根据您的数据生成带有选项的 并将 ViewData 中的数据使用到列表而不是 selectList 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 2015-08-02
  • 1970-01-01
  • 2012-04-24
相关资源
最近更新 更多