2

MultiSelectListを空として初期化する方法を知っている人はいますか?

ListBoxForコントロール(MVC3)があり、ユーザーがWebページ上の他のテキストおよびボタンコントロールを使用してデータを入力できるようにします。

下の行をコメントアウトするのは好きではありません。

よろしくお願いします

Items = new MultiSelectList(
    new[] 
    {
        //new { Id = 1, Name = "item 1" }                        
    },
    "Id",
    "Name",
    selectedItemIds
)
4

1 に答える 1

2

このようなMultiSelectListを作成する場合、コンパイラーがチェックすることの1つは、指定したリスト(IEnumerable)に実際Idにフィールドがあるかどうかです。Nameコードの問題は、名前の付いた要素がなく、匿名オブジェクトの空の配列を送信するIdName、コンパイラがこれが有効なコードであると結論付けることができないことです。

空の配列を送信できるようにする場合は、匿名型の使用を控える必要があります。

これを試して:

    public struct myListType
    {
        public int Id;
        public string Name;
    }

これで、次のようにMultiSelectListを作成できます。

Items = new MultiSelectList(
    new List<myListType>(),
    "Id",
    "Name"
);

リストが空の場合は使用されないため、selecteditemIDを省略しました。これは、問題を作成することしかできません。

なぜあなたがこれをしたいのかはまだわかりませんが。自分の意図を詳しく説明できれば、もっと良い方法があるのではないかと思います。

于 2012-08-28T11:39:29.717 に答える