質問

これに対処する最善の方法は次のとおりです。

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

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

基本的に、利用可能なオプションはすべてあります allOptions. 。別の項目を入れるチェックボックスが欲しい Option (たとえそれがそれだけだったとしても、 id) に QuoteItem.options チェックを入れるとリストが表示されます。どうすればこれを達成できますか?一番いいのは IList<bool> そして事後的にバインドしますか?

役に立ちましたか?

解決

これを見てみることをお勧めします ブログの記事 Phil Haack より、リストへのモデル バインディングについて

状況に応じて、単純なモデルバインディングを使用できます。 IEnumerable<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>

非表示の入力には、選択したオプション ID と各非表示の入力で同じノート名属性が含まれます。デフォルトのモデルバインダーは、これを整数のリストにバインドできます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top