Je veux poster ma liste d'objet à mon contrôleur.Toute meilleure façon de publier la liste des objets de classe sur le contrôleur
Ceci est mon fichier de classe:
public class MyModel
{
public int Id {get; set;}
public List<ChildModel> ChildModelObject{ get; set; }
}
public class ChildModel
{
public int ChildId {get; set;}
public int sum {get; set;}
}
Ma Voir Page:
@model Demo.MyModel
@using (Html.BeginForm())
{
@{ int i = 0; }
@foreach (var item in Model.ChildModelObject) //first I am displaying value and then on submit i will post this value
{
<input type="hidden" name="@Html.Raw("ChildModelObject[" + i + "].ChildId")" value="@item.ChildId" /> //This is how i am taking value and it is working perfect and i am getting childid.
@Html.DisplayFor(modelItem => item.sum)
}
<input type="submit" value="Save"/>
}
Controller:
public ActionResult Index(MyModel model)//In this i want all childid when form is posted
{
}
Alors maintenant, quand je clique sur le bouton d'envoi alors je veux tout childid dans mon MyModel objet.
Quelqu'un peut-il me dire une meilleure approche alors ce que je fais ??
Vous avez 2 options: utilisez la boucle 'for' pour avoir l'itérateur ou utilisez' EditorTemplates' –
@teovankot: Pouvez-vous publier vos réponses s'il vous plaît et je ne veux pas utiliser de variable supplémentaire et si possible, utilisez les contrôles cachés du rasoir –
N'utilisez pas une boucle 'foreach' - utilisez' for (int i = 0; i m.ChildModelObject [i] .ChildId) @ Html.DisplayFor (m => m.ChildModelObject [i] .sum)} ' –