2

これを処理する最良の方法は何ですか:

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

class QuoteViewModel {
     IList<Option> allOptions;
     QuoteItem quoteItem;
}

基本的に、利用可能なすべてのオプションが にありますallOptions。チェックされたときに別のOptionものをリストに入れるチェックボックスが必要です。どうすればこれを達成できますか? 事後にバインドするのが最善でしょうか?idQuoteItem.optionsIList<bool>

4

1 に答える 1

2

リストへのモデル バインディングに関する Phil Haackのこのブログ エントリを参照することをお勧めします。

あなたの状況では、単純なモデル バインディングを aIEnumerable<int> optionsに使用できます。値は、選択したオプションの ID になります。

入力ビューは次のようになります。

<form method="post" action="/QuoteItems/SetOptions">
        <input type="hidden" name="options" value="1" />
        <input type="hidden" name="options" value="4" />
        <input type="hidden" name="options" value="2" />
        <input type="hidden" name="options" value="8" />
        <input type="submit" />
    </form>

非表示の入力には、選択したOptionID、Note Name属性が含まれています。デフォルトのモデルバインダーは、これを整数のリストにバインドできます。

次に行う必要があるのは、「すべてのオプション」選択コントロールでアイテムが選択されているかどうかに応じて、クライアント側で非表示のオプション入力を追加/削除することです。

于 2010-02-19T11:29:17.670 に答える