我想创建一个能够设置ID的下拉列表(因为我有两个来自同一个视图包)。
之类的东西@Html.DropDownList("startTimes", (SelectList)ViewBag.times, new { @class = "date" })
@Html.DropDownList("endTimes", (SelectList)ViewBag.times, new { @class = "date" })
现在,我有
ViewBag.times = getTimeList();
private List<SelectListItem> getTimeList() { List<SelectListItem> times = new List<SelectListItem>(); for (int Minutes = 60; Minutes < 770; Minutes += 30) { TimeSpan TS = TimeSpan.FromMinutes(Minutes); String TSString = String.Format("{0:00}:{1:00}", TS.Hours, TS.Minutes); SelectListItem item = new SelectListItem(); item.Text = TSString; item.Value = TS.Minutes.ToString(); times.Add(item); } return times; }
但我收到错误:无法将类型'System.Collections.Generic.List'转换为'System.Web.Mvc.SelectList'
答案 0 :(得分:1)
你去吧
@Html.DropDownList("endTimes", new SelectList(ViewBag.times, "Value", "Text"), new { @class = "date" })
正如错误所述,您需要为此创建一个新的SelectList
,而不仅仅是从现有的可枚举中进行转换。 DropDownList
帮助程序重载应该会显示出来。
您也可以使用Google搜索问题并自己找到答案,例如在this SO question中。
更新:
现在重新阅读您的问题,您正在谈论为下拉列表设置id
,这实际上与您的错误无关。 id
将从第一个参数设置为DropDownList
帮助器(它是方法中的“name”参数)。