【问题标题】:ASP.NET MVC3 - problem handling multiple values from a strongly typed ListboxASP.NET MVC3 - 处理来自强类型列表框的多个值的问题
【发布时间】: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' 类型。/

抱歉,英语不是我的主要语言。 我会很感激我能得到的任何帮助。 谢谢。

【问题讨论】:

    标签: asp.net asp.net-mvc-3 html.listboxfor


    【解决方案1】:

    你在视图@model ...中定义了什么模型?
    除此之外, Create 方法没有返回用于/作为模型的东西。 如果您希望列表框在名称属性中被称为“技术”,您可以改用:

    @Html.ListBox("Technologies", (MultiSelectList)ViewBag.eventTechnology)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      相关资源
      最近更新 更多