0

強く型付けされたリストボックスからの複数の値の処理に問題があります。複数のテクノロジークラスを持つことができるイベントクラスがあります。

これが私の簡略化されたイベントクラスです:

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

これがリストボックスをレンダリングするビュー部分です

@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」である必要があります。/

申し訳ありませんが、英語は私の主な言語ではありません。私が得ることができるどんな助けにも感謝します。ありがとうございました。

4

1 に答える 1

0

View でどのモデルを定義しました@model ...か?
それに加えて、Create メソッドは、モデルとして使用されるものを返しません。name 属性でリストボックスの名前を「Technologies」にしたい場合は、代わりに次を使用できます。

@Html.ListBox("Technologies", (MultiSelectList)ViewBag.eventTechnology)
于 2011-09-02T22:07:44.177 に答える