将Telerik MVC Combobox绑定到模型

时间:2012-09-22 18:46:50

标签: asp.net-mvc-3 combobox telerik-mvc

我的应用程序是asp.net MVC,试图将Telerik MVC Combobox绑定到模型。 这是模型:

public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool DisplayBold { get; set; }
        public string Value
        {
            get
            {
                return string.Format("{0}|{1}", this.Id, this.DisplayBold.ToString());
            }
        }
    }

在控制器中:

  var people = new List<Person>();
        people.Add(new Person { Id = 1, Name = "John Doe", DisplayBold = true });
        people.Add(new Person { Id = 2, Name = "Jayne Doe", DisplayBold = false });
        ViewData["people"] = people;
        return View();

我确实得到了值。

在视图中:

<%= Html.Telerik().ComboBox()
       .Name("ComboBox")
           .BindTo((IEnumerable<SelectListItem>)ViewData["people"])
%>

我得到了以下错误:

Unable to cast object of type 'System.Collections.Generic.List`1[caseprog.Models.Person]' to type 'System.Collections.Generic.IEnumerable`1[System.Web.Mvc.SelectListItem]'.

我很感激你的建议。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您不能将人员列表转换为IEnumerable SelectListItem。他们是两件不同的事情。

相反,您需要将列表转换为SelectListItem列表。你可以通过多种方式实现这一目标,但这个方法应该有效:

.BindTo(new SelectList((IEnumerable<Person>)ViewData["people"], "Id", "Name"))