Вопрос

Какой лучший способ справиться с этим:

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> и связывать его после факта?

Это было полезно?

Решение

Я предлагаю вам взглянуть на это запись в блоге От Фила Хаака о связывании модели с списком

Для вашей ситуации вы можете использовать простую привязку модели с IEnumerable<int> options, где значения будут идентификатором выбранных вариантов.

Ваш входной вид будет выглядеть примерно так:

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

Скрытые входы содержат атрибут «Выбранные», атрибут «Имя примечания», который одинаково для каждого скрытого ввода. Связь с модели по умолчанию может связать это с списком целых чисел.

То, что вам нужно сделать дальше,-это добавление / удаление скрытого ввода параметров на стороне клиента в зависимости от того, выбран ли элемент в вашем управлении «Всеобъемлющими».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top