Bonsoir,

J'ai la classe suivante, ViewModelListeVoeux que je passe sans problème depuis mon contrôleur à ma vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class ViewModelListeVoeux
    {
        public List<Produit> ListeVoeux { get; set; }
        public List<Enseigne> ListeEnseignes { get; set; }
 
        public ViewModelListeVoeux()
        {
            ListeVoeux = new List<Produit>();
            ListeEnseignes = new List<Enseigne>
            {
                 new Enseigne{Nom = "Fnac", Photo = "Fnac.jpg" },
                 ...
                 new Enseigne{Nom = "Amazon", Photo = "amazon.jpg" }
            };
        }
    }
Je peux donc manipuler l'objet dans ma vue sans problème.

Mais en sens inverse lorsque je tente de passer l'objet ViewModel modifié à mon contrôleur, il est vide.
Voici ma vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    @using (Html.BeginForm("EditerListeVoeux", "ListeVoeux"))
    {
 
    @foreach (Produit p in Model.ListeProduits)
    {
        <tr><td><input type="checkbox" name="CheckBoxesProduitChoisi" value="@p.Id"  /></td><td>@p.Nom </td><td>@p.Marque</td><td>@p.Prix</td><td>@p.NomPhoto</td></tr>
 
    }
Et voici mon contrôleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
  public ViewResult EditerListeVoeux(int[] CheckBoxesProduitChoisi, ViewModelListeVoeux VMlisteVoeux)
        {
 
           // ViewModelListeProduits modèleLP = new ViewModelListeProduits();
 
           /* foreach (Produit p in modèleLP.ListeProduits)
            {
                for (int i = 0; i < CheckBoxesProduitChoisi.Count(); i++)
                {
                    if (p.Id == CheckBoxesProduitChoisi[i])
                    {
                        VMlisteVoeux.ListeVoeux.Add(p);
                    }
                }
            }
           */
            return View("EditerListeVoeux", VMlisteVoeux);
        }
Autant je reçois bien un tableau des ID des cases à cocher sélectionnées et je peux bricoler avec, autant je souhaiterai recevoir directement en paramètre de mon contrôleur mon ViewModel modifié.
Comment faire donc pour que VMListeVoeux corresponde à ce que j'ai modifié ?

Merci d'avance à chacun.