Créer MVC3 CheckBoxFor de la Liste<T> et l'obtention de la liste (Avec les valeurs mises à jour) sur le Post

J'ai une Liste dans mon ViewModel je lis à la Vue

List<BoolSetting> 

BoolSetting:

    public class BoolSetting
{
    public BoolSetting(string displayName, bool value)
    {
        DisplayName = displayName;
        Value = value;
    }
    public string DisplayName { get; set; }
    public bool Value { get; set; }
}

Je veux imprimer une case à cocher pour tous les articles de ma liste, de sorte que la liste est dans le ViewModel la vue utilise

@foreach(var boolSettingList in Model.BoolSettingList)
        {
            <div>
                @Html.CheckBox(boolSettingList.DisplayName, boolSettingList.Value)
                @boolSettingList.DisplayName
            </div>
        }

Le problème est que lorsque je poste ce alors que mon Modèle n'ont pas enregistré les paramètres mis à jour (Les valeurs bool) dans la Liste dans mon ViewModel et, par conséquent, l'objet est vide.

Je pouvais faire

foreach (var VARIABLE in userSettingConfigViewModel.BoolSettingList)
        {
            VARIABLE.Value = (bool)Request.Form[VARIABLE.DisplayName];

        }

Mais ce dernier aura beaucoup de listes et certains d'entre eux ont les mêmes noms! Donc, ça va provoquer des conflits

Donc, il y a un moyen de foreach imprimer toutes mes booléens et ensuite faire MVC figure afin de mettre les données dans la Liste d'objet après? Je ne peux pas obtenir CheckBoxFor de travailler comme il veut une expression et je ne peux pas trouver un moyen de itterate dans ma liste de cette façon

Je peux peut-être le fixer à l'aide de Modèles, en faisant un modèle pour BoolSetting et peut-être la Liste ?

OriginalL'auteur Mech0z | 2011-12-02