ASP.NET MVC 2.0 - IList CheckBoxes
-
21-09-2019 - |
Question
Quelle est la meilleure façon de gérer cela:
class Option {
int id;
string name;
}
class QuoteItem
{
IList<Option> options;
}
class QuoteViewModel {
IList<Option> allOptions;
QuoteItem quoteItem;
}
En fait, j'ai toutes les options disponibles dans allOptions
. Je veux avoir une case à cocher qui met une autre Option
(même si elle vient de son id
) dans la liste des QuoteItem.options
lorsqu'elle est cochée. Comment pourrais-je accomplir cela? Serait-il mieux un IList<bool>
et le lier après le fait?
La solution
Je vous suggère de jeter un regard à ce entrée de blog de Phil Haack à propos de modèle de liaison à une liste
Pour votre situation, vous pouvez utiliser modèle simple liaison à un IEnumerable<int> options
, où les valeurs seront l'id de vos options sélectionnées.
votre point de vue d'entrée sera alors ressembler à quelque chose comme ceci:
<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>
Les entrées cachées contiennent vos années optionId sélectionné, notez l'attribut name qui est la même pour chaque entrée cachée. Le liant à base de modèle par défaut peut se lier à cette liste de nombres entiers.
La chose que vous devez faire est l'ajout / suppression d'une entrée d'options cachées à côté client selon que l'élément est sélectionné dans vos « toutes-options », sélectionnez le contrôle.