ASP.NET MVC 2.0 - IList<T> Caselle di controllo
-
21-09-2019 - |
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?
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.