J'ai une vue typée en tant qu'élément (une classe que j'ai créée) avec un formulaire à l'intérieur pour ajouter des éléments à ma base de données. Cette classe d'objet a une propriété appelée Catégories qui est une liste (catégorie a 2 propriétés ID et Nom)asp.net mvc 3 Modèle avec propriété complexe et cases à cocher
Im en utilisant un editorfor à mon avis:
<div>
@(Html.EditorFor(e => e.Categories, "Categories"))
</div>
J'ai créé un EditorTemplatefor appelé « Categories.cshtml » rendre toutes les catégories disponibles:
@{
Layout = null;
}
@model List<Category>
@{
foreach (Category category in ((BaseController)this.ViewContext.Controller).BaseStateManager.AvailableCategories)
{
@Html.Label("test", category.Name)
<input type="checkbox" name="Categories" value="@(category.ID)" />
}
}
les cases sont bien rendus (un pour chaque catégorie disponible dans le cache), mais après avoir cliqué sur dans certains cas, et après la forme, im recevant mon exemple de l'article, mais avec la propriété Catégories vide.
Que dois-je faire pour recevoir mes catégories de liste complètement instanciées après avoir soumis le formulaire?
Merci Shawn, vraiment utile. J'ai un dernier doute, je dois imprimer dans mon cas toutes les catégories mises en cache. Pour modifier un élément, j'ai besoin de montrer toutes les catégories du cache mais j'ai coché celles que mon objet a. Comment résolvez-vous cela? Merci. – Jose3d
Créer un modèle de vue qui va être exactement ce qui se passe sur la vue. La propriété booléenne de la case à cocher doit donc déjà être traitée avant de transmettre le modèle à l'éditeur. –