ASP.NET MVC 2.0 - ILIST Caixas de seleção
-
21-09-2019 - |
Pergunta
Qual a melhor forma de lidar com isto:
class Option {
int id;
string name;
}
class QuoteItem
{
IList<Option> options;
}
class QuoteViewModel {
IList<Option> allOptions;
QuoteItem quoteItem;
}
Basicamente, eu tenho todas as opções disponíveis em allOptions
. Eu quero ter uma caixa de seleção que coloca outro Option
(mesmo que seja apenas é id
) no QuoteItem.options
Liste quando é verificado. Como eu conseguiria isso? Seria melhor um IList<bool>
e ligá -lo após o fato?
Solução
Eu sugiro que você veja isso entrada no blog De Phil Haack sobre a ligação do modelo a uma lista
Para sua situação, você pode usar o modelo simples de ligação a um IEnumerable<int> options
, onde os valores serão o ID das opções selecionadas.
Sua visualização de entrada será então algo assim:
<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>
As entradas ocultas contêm o atributo de nome do optionId selecionado, que é o mesmo para cada entrada oculta. O aglutinante do modelo padrão pode vincular isso a uma lista de números inteiros.
O que você precisa fazer a seguir é adicionar / remover uma entrada de opções ocultas no lado do cliente, dependendo se um item é selecionado em seu controle de seleção "todas as opções".