我的应用程序是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]'.
我很感激你的建议。提前谢谢。
答案 0 :(得分:1)
您不能将人员列表转换为IEnumerable
SelectListItem
。他们是两件不同的事情。
相反,您需要将列表转换为SelectListItem
列表。你可以通过多种方式实现这一目标,但这个方法应该有效:
.BindTo(new SelectList((IEnumerable<Person>)ViewData["people"], "Id", "Name"))