我在处理强类型列表框中的多个值时遇到问题。 我有一个可以有多个技术类的事件类。
这是我简化的Event类:
public class Event
{
public int ID { get; set; }
public IEnumerable<Technology> Technologies { get; set; }
}
我正在使用这个
public List<Technology> Technologies { get; set; }
并改为
public IEnumerable<Technology> Technologies { get; set; }
但仍然遇到同样的错误。
这是技术课,这是一个非常简单的课程
public class Technology
{
public int ID { get; set; }
public String Description{ get; set; }
}
这是我的简化控制器
public ActionResult Create()
{
var TechnologyQry = from d in db.Technology
orderby d.Description
select new { d.ID, d.Description };
ViewBag.eventTechnology = new MultiSelectList(TechnologyQry ,"ID","Description");
return View();
}
这里是渲染ListBox的视图部分
@Html.ListBoxFor(model => model.Technologies, (MultiSelectList)ViewBag.eventTechnology)
然后是我得到的错误
具有键'Technologies'的ViewData项的类型为'System.Collections.Generic.List`1 [[stuff.Models.Technology,stuff,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null] ]'但必须是'IEnumerable'类型./
抱歉,英语不是我的主要语言。 我很感激我能得到任何帮助。 谢谢。
答案 0 :(得分:0)
您在视图@model ...
中定义了哪些模型?
除此之外,Create方法不会返回用于/作为模型的东西。
如果您希望列表框在name属性中称为“Technologies”,则可以使用:
@Html.ListBox("Technologies", (MultiSelectList)ViewBag.eventTechnology)