Frage

Wie geht man damit am besten um:

class Option {
    int id;
    string name;
}

class QuoteItem
{
     IList<Option> options;
}

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

Grundsätzlich stehen mir alle verfügbaren Optionen zur Verfügung allOptions.Ich möchte ein Kontrollkästchen haben, das ein anderes setzt Option (Auch wenn es nur so ist id) in die QuoteItem.options Liste, wenn es überprüft wird.Wie würde ich das erreichen?Wäre es am besten ein IList<bool> und es nachträglich binden?

War es hilfreich?

Lösung

Ich schlage vor, dass Sie sich das ansehen Blog-Eintrag von Phil Haack über die Modellbindung an eine Liste

Für Ihre Situation können Sie eine einfache Modellbindung an a verwenden IEnumerable<int> options, wobei die Werte die ID Ihrer ausgewählten Optionen sind.

Ihre Eingabeansicht sieht dann etwa so aus:

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

Die ausgeblendeten Eingaben enthalten die von Ihnen ausgewählten OptionIds und das Notiznamenattribut, das für jede ausgeblendete Eingabe gleich ist.Der Standardmodellbinder kann dies an eine Liste von Ganzzahlen binden.

Als Nächstes müssen Sie auf der Clientseite eine versteckte Optionseingabe hinzufügen/entfernen, je nachdem, ob ein Element in Ihrem Auswahlsteuerelement „Alle Optionen“ ausgewählt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top