asp.net mvc Html.Listbox - 如何手动添加项目

时间:2010-02-22 16:40:18

标签: asp.net-mvc

我正在寻找一种方法来手动将项目添加到mvc中的html.ListBox。我希望顶部项目是“所有项目”。 即。

All Items
Item1
Item2
Item3

我正在打电话:

<%=Html.ListBox("items", Model.Items, new { style = "height:50px;width:100%" })%>

我可能必须在设置MultiSelectList时将其添加到模型中,但更愿意在控制器中添加它。

干杯

2 个答案:

答案 0 :(得分:2)

您可以让视图模型包含SelectListItem列表,并在控制器中手动添加项目。例如:

List<SelectListItem> modelSelectList = model.Select(x => new SelectListItem()
                {
                    Text = x.Name,
                    Value = x.ID.ToString()
                }).ToList();

modelSelectList .Add(new SelectListItem() { Selected = false, Text = "All Items", Value = "-1");

答案 1 :(得分:1)

我更喜欢在您的控制器中执行此操作,但为了快速修复,我猜您可以执行类似

的操作
<% var items = Model.Items.ToList(); items.Insert(0, new SelectListItem() { Text = "All items" }); %>
<% Html.ListBox("items", items, new { style = "height:50px;width:100%" })%>