MVC下拉列表问题,不知道如何设置它

时间:2012-11-13 01:51:50

标签: c# asp.net-mvc razor

我想创建一个能够设置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'

1 个答案:

答案 0 :(得分:1)

你去吧

@Html.DropDownList("endTimes", new SelectList(ViewBag.times, "Value", "Text"), new { @class = "date" })

正如错误所述,您需要为此创建一个新的SelectList,而不仅仅是从现有的可枚举中进行转换。 DropDownList帮助程序重载应该会显示出来。

您也可以使用Google搜索问题并自己找到答案,例如在this SO question中。

更新:

现在重新阅读您的问题,您正在谈论为下拉列表设置id,这实际上与您的错误无关。 id将从第一个参数设置为DropDownList帮助器(它是方法中的“name”参数)。