C#MVC DropDownListFor:使用OptGroup在数组中设置选定内容

时间:2017-02-01 16:19:47

标签: c# asp.net-mvc razor

我在一个数组中有一个带有Html.DropDownListFor的MVC View页面。在后面的代码中,我创建了一个'SelectListItem'列表,它是一个从数据库填充的动态列表。

最初我构建它的方式是从未设置DDL中的选定项目,它总是默认为第一个值。我查找了问题,发现你需要像这样传递选定的值

Html.DropDownListFor(x => x.Sections[i].item, new SelectList(Model.DDL, "Value", "Text", Model.Sections[i].item), new { @class = "form-control" })

从那时起,我添加了一个'SelectListGroup',用'OptGroup'标签对下拉列表项进行分组。

我遇到的问题是我无法使用上面使用的方法使用'DropDownListFor'来处理分组。如果我使用

,它确实很有效
Html.DropDownListFor(x => x.Sections[i].Item, Model.DDL, htmlAttributes: new { @class = "form-control" })

不幸的是,我接着没有设置当前选定值的问题。

如何让“OptGroup”工作并将所选项目设置为数组?

1 个答案:

答案 0 :(得分:0)

我最终找到了答案......

这是我在最后使用的视图中的代码

@Html.DropDownListFor(m => m.Sections[i].Item, Model.DDL.Select(x => new SelectListItem() { Value = x.Value, Text = x.Text, Group = x.Group, Selected = (x.Value == Model.Sections[i].Item) }).ToList())

我现在可以让OptGroup使用Selected项目集。