ASP.NET MVC3 - проблема обработки нескольких значений из строго типизированного списка - PullRequest
0 голосов
/ 02 сентября 2011

У меня проблема с обработкой нескольких значений из строго типизированного списка.У меня есть класс событий, который может иметь несколько классов технологий.

Вот мой упрощенный класс событий:

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

но все равно получена та же ошибка.

Вот класс Technology, он действительно простой

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)

, и это ошибка, которую я получаю

Элемент ViewData, имеющий ключ 'Technologies', имеетТип 'System.Collections.Generic.List`1 [[stuff.Models.Technology, stuff, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]]', но должен иметь тип 'IEnumerable' ./

Извините, английский не мой основной язык.Буду признателен за любую помощь, которую я могу получить.Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2011

Какую модель вы определили в представлении @model ...?Кроме того, метод Create не возвращает то, что будет использоваться для / в качестве модели.Если вы хотите, чтобы список именовался «Технологии» в атрибуте имени, вместо этого вы могли бы использовать:

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