Domanda

Qual è il modo migliore per gestire questo:

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

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

Fondamentalmente, ho tutte le opzioni disponibili in allOptions.Voglio avere una casella di controllo che mette un altro Option (anche se il suo solo la sua id) in QuoteItem.options quando si è verificata.Come posso realizzare questo?Sarebbe meglio essere un IList<bool> e associarlo dopo il fatto?

È stato utile?

Soluzione

Ti suggerisco di dare un occhiata a questo blog Phil Haack sul modello di associazione di un elenco

Per la tua situazione, è possibile utilizzare una semplice modello vincolante per un IEnumerable<int> options, dove i valori saranno gli id delle opzioni selezionate.

il vostro input vista poi cercare qualcosa di simile a questo:

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

Nascosto ingressi contenere il vostro selezionato optionId, la nota attributo name che è la stessa per ogni input nascosto.Il modello di default raccoglitore possibile associare questo per un elenco di numeri interi.

La cosa che dovete fare è aggiungere / rimuovere un opzioni nascoste di ingresso al lato client, a seconda se un elemento è selezionato in "tutte le opzioni", selezionare controllo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top