ASP.NET MVC3 - 处理来自强类型列表框的多个值的问题
Posted
技术标签:
【中文标题】ASP.NET MVC3 - 处理来自强类型列表框的多个值的问题【英文标题】:ASP.NET MVC3 - problem handling multiple values from a strongly typed Listbox 【发布时间】:2011-11-09 06:39:24 【问题描述】:我在处理强类型列表框中的多个值时遇到问题。 我有一个可以有多个技术类的事件类。
这是我的简化事件类:
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' 类型。/
抱歉,英语不是我的主要语言。 我会很感激我能得到的任何帮助。 谢谢。
【问题讨论】:
【参考方案1】:你在视图@model ...
中定义了什么模型?
除此之外, Create 方法没有返回用于/作为模型的东西。
如果您希望列表框在名称属性中被称为“技术”,您可以改用:
@Html.ListBox("Technologies", (MultiSelectList)ViewBag.eventTechnology)
【讨论】:
以上是关于ASP.NET MVC3 - 处理来自强类型列表框的多个值的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET MVC3 中正确使用 TempData?
带有 DropDownList 的 ASP.NET MVC 强类型视图