0

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

4

1 回答 1

1

干得好

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

正如错误所述,您需要创建一个新SelectList的才能使其正常工作,而不仅仅是从现有的可枚举中转换。DropDownList辅助重载应该向您展示这一点。

你也可以用谷歌搜索这个问题并自己找到答案,例如在这个 SO question中。

更新:

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

于 2012-11-13T02:40:39.993 回答