My viewmodel contains an integer list, the problem is that when submitting a modified viewmodel form, it is always zero.
My ViewModel:
public class testViewModel { public List<int> itemTest { get; set; }
Action in my controller:
For example, I will try to summarize the new values entered into the form, but the calculated amount is always 0, nothing changes.
public ActionResult form(int nbre) { testViewModel montest = new testViewModel() { itemTest = new List<int>() }; for(int i=0;i<nbre ;i++) { montest.itemTest.Add(0); } return View(montest); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult form(testViewModel maListe) { int somme = 0; if (maListe.itemTest != null) { if (maListe.itemTest.Count() != 0) { foreach (var item in maListe.itemTest) { somme += item; } } }
My opinion
@model MvcWebRole1.ViewModels.testViewModel @{ ViewBag.Title = "Formulaire"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <table> @foreach (var item in Model.itemTest) { <tr > <td > @Html.Label("Quantitée") </td> <td> @Html.EditorFor(model => item) @Html.ValidationMessageFor(model => item) </td> </tr> } </table> <input type="submit" value="Valider" /> }
Thank you, kindly help me
source share