Bonjour,

J'ai un problème pour passer un viewmodel à mon controller. Dans mon viewmodel, j'ai une liste, que je passe à ma vue avec un foreach pour afficher tous les item de ma liste.
Quand j'envoie mon formulaire en httppost, ma liste est nulle.

Voici mon code :

Dans le viewmodel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 public class FormViewModel
    {
 
        public Customer Client { get; set; }
        public List<Customer> Contacts {get; set;}
}

Dans le controller, en HTTPGET :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
      public ActionResult Client(string id)
        {
            FormViewModel VM = new FormViewModel(id);
 
            return View(VM);
        }
Dans 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
<% using (Html.BeginForm()) { %>
 
<fieldset>
    <legend>Liste des contact</legend>
    <%foreach (var item in Model.Contacts)
      {%>
    Prénom :
    <%:Html.TextBoxFor(model => item.Firstname)%><br />
    Nom :
    <%:Html.TextBoxFor(model => item.Name)%><br />        
    <%} %>
</fieldset>
 
<input type="submit" />
<% } %>
Dans mon controller, en HTTPPOST :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 [HttpPost]
        public ActionResult Index(FormViewModel VM) {
 
            return View();
 
        }
Mon VM.Contacts est null...

J'ai le problème à chaque fois que je fais un viewmodel avec une liste.
C'est super handicapant pour développer, doit y avoir quelque chose que j'ai pas capté...

J'espère que vous pourrez m'aider, je suis complètement bloquée dans mon projet.