开发者

ASP.NET MVC3 - problem handling multiple values from a strongly typed Listbox

I'm having a problem handling multiple values from a strongly typed Listbox. I have an Event Class that can have multiple Technology classes.

Here's my simplified Event class:

public class Event
{
    public int ID { get; set; }
    public IEnumerable<Technology> Technologies { get; set; }
}

I was using this

public List<Technology> Technologies { get; set; }

and changed to

public IEnumerable<Technology> Technologies { get; set; }

b开发者_如何学编程ut still got the same error.

Here's the Technology class, it's a really simple one

public class Technology
{
    public int ID { get; set; }
    public String Description{ get; set; }
}

here's my simplified Controller

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();
    }

and here's the view portion that renders the ListBox

@Html.ListBoxFor(model => model.Technologies, (MultiSelectList)ViewBag.eventTechnology)

and thit's the error I'm getting

The ViewData item that has the key 'Technologies' is of type 'System.Collections.Generic.List`1[[stuff.Models.Technology, stuff, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' but must be of type 'IEnumerable'./

Sorry, English is not my main language. I'd appreciate any help I can get. Thank you.


What Model have do you have defined in the View @model ...?
Besides that, the Create method isn't returning something to be used for/as the model. If you want the listbox to be called "Technologies" in the name attribute, you could instead use:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜