Comment passer un viewmodel à un controller?
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:
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:
1 2 3 4 5 6
| public ActionResult Client(string id)
{
FormViewModel VM = new FormViewModel(id);
return View(VM);
} |
Dans ma vue :
Code:
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:
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.