Bonjour à tous,
j'essaye de développer un formulaire, où le but est de saisir différents filleuls.
J'ai donc fait une boucle for dans ma view pour appeler, autant de fois que voulu, une partial view.
Ma view s'appuie sur un GodsonsViewModel, et ma partial view sur un GodsonModel que je définirai plus bas.
Mon problème : lorsque je récupère mes données au niveau du controller, le GodsonViewModel existe bien avec toutes ses propriétés, mais la liste de GodsonModel reste à null. J'imagine que l'erreur se trouve plutôt au niveau de la partial view mais pas moyen de trouver une solution qui fonctionne.
ps : J'ai simplifié le formulaire pour un soucis de lisibilité.
ViewModel - GodsonsViewModel.cs
Model - GodsonModel.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class GodsonsViewModel { /// <summary> /// Nombre de filleuls potentiel /// </summary> public int GodsonNumber { get; set; } /// <summary> /// Listes des informations d'un filleul /// </summary> public List<GodsonModel> Godsons { get; set; } }
View - Test.cshtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class GodsonModel { /// <summary> /// Nom du filleul /// </summary> [Required] [Display(Name="Nom*")] public string Name { get; set; } }
Partial View - PartialTest.cshtml
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 @model Total.ViralMarketing.Models.GodsonsViewModel @using (Html.BeginForm()) { @Html.HiddenFor(m => m.GodsonNumber) for (int i = 0; i < Model.GodsonNumber; i++) { Html.RenderPartial("_GodsonInfos", new ViewDataDictionary { { "Index" , i }, { "Functions", ViewBag.Functions } }); } }
Controller - ControllerTest.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @model Total.ViralMarketing.Models.GodsonModel @{ int godsonNumber = ViewBag.Index + 1; string test = "Godsons[" + ViewBag.Index.ToString() + "]."; } @godsonNumber @Html.TextBoxFor(m => m.Name, new { id = "name" + ViewBag.Index })
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [HttpPost] public ActionResult CreateSponsorship(GodsonsViewModel godsonsViewModels) { return View(); }
Partager