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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top