J'ai vue classe modèle qui ressemble à ceciTryUpdateModel ou UpdateModel où le modèle a un tableau
public class ViewModel
{
public string Name { get; set; }
public IList<SubViewModel> Subs { get; set; }
}
public class SubViewModel
{
public string Name { get; set; }
public bool IsSet { get; set; }
public int Id { get; set; }
}
Dans mon HTML je puis
<%= Html.TextBoxFor(x=>x.Name) %>
<% foreach(var sub in x.Subs) { %>
<%= sub.Name %>
<%= Html.Checkbox("Subs["+index of current sub+"].IsSet",sub.IsSet) %>
<% } %>
Dans mon code de contrôleur pour soumettre des une forme entourant ceux-ci je fais ce qui suit
public Save()
{
var oldModel = GetOldModelFromSession();
TryUpdateModel(oldModel);
SaveModelToDb(oldModel);
}
Maintenant, quand j'appelle essayer le modèle de mise à jour, il remplace le " Subs "liste avec une nouvelle plutôt que de simplement mettre à jour la propriété IsSet à l'index correct. Est-ce que cela peut fonctionner (je suppose que oldModel que j'obtiens est le même que celui qui a été envoyé à la page.)
Merci Brian, j'ai eu un sentiment qui pourrait être la réponse. –