Zones de texte créées dynamicment non liées au modèle

Mon viewmodel contient une liste de chaînes:

public class SupplierViewModel { public Supplier Supplier { get; set; } public List Numbers; } 

L’utilisateur peut append un nombre quelconque de chaînes dans la vue:

  
@Html.LabelFor(model => model.Numbers)
@for (int i = 0; i < Model.Numbers.Count; i++) {
@Html.TextBoxFor(m => m.Numbers[i])
}

Cela se fait côté client avec jquery:

 var container = $('#allNumbers'); $('#addNumber').click(function () { var index = container.children().length; var clone = $('#newNumber').clone(); clone.html($(clone).html().replace(/\[#\]/g, '[' + index + ']')); container.append(clone.html()); }); 

Mon problème est qu’aucune des chaînes ajoutées dynamicment n’est renvoyée au contrôleur, même si elles s’appellent toutes “Numbers [i]”. Qu’est-ce que j’oublie ici?

Numbers est un champ et le DefaultModelBinder ne peut pas définir la valeur d’un champ. Vous devez en faire une propriété en ajoutant des getters / setters

 public List Numbers { get; set; }