Disons que j'ai le modèle ci-dessousComment ASP.NET MVC: Comment lier une propriété de type Liste <T>?
public class UserInformation
{
public List<UserInRole> RolesForUser { get; set; }
//Other properties omitted...
}
public class UserInRole
{
public string RoleName { get; set; }
public bool InRole { get; set; }
}
Sur ma page J'ai quelque chose comme
<%using(Html.BeginForm()){%>
.../...
<%for(int i =0; i<Model.InRoles.Cout; i++%>
<p><%: Html.CheckBox(Model.Roles[i].RoleName, Model.Roles[i].InRole)%></p>
<%}%>
L'idée est de pouvoir cocher/décocher la case de sorte que lorsque le formulaire est affiché à l'action, l'action agit de manière appropriée en ajoutant/supprimant l'utilisateur de chaque rôle. Le problème est lorsque le formulaire est publié dans la méthode d'action, la propriété Roles (qui est un objet UserInRole de liste) ne reflète pas la modification apportée par l'utilisateur. ModelBinder fonctionne correctement sur toutes les autres propriétés mais 'Roles property'
Je me demande comment je peux faire cela. Je soupçonne que le nom/id donné à la case à cocher n'est pas approprié. Mais, je suis juste pile. Peut-être que je devrais le faire différemment.
Merci de nous aider
double possible de [modèle complexe de liaison à une liste] (http://stackoverflow.com/questions/231878/complex-model-binding-to-a -list) – jfar