Bonjour � tous
Apr�s plusieurs recherches et essais, je me tourne vers vous
J'ai une view qui affiche la liste des albums d'une s�rie, avec une checkbox sur chaque album indiquant si je l'ai.
Le binding de model fonctionne bien avec les HtmlHelper quand j'appelle cette vue via un view model et lorsque je submit le formulaire, les nouvelles valeurs de checkbox sont bien r�cup�r�s par le contr�leur
Cependant lorsque je remplace le htmlhelper de ma checkbox par une balise input (oblig� pour faire du CSS), mes checkbox ont bien la bonne valeur sur la vue, mais lorsque je soumet le viewmodel � mon contr�leur, les nouvelles valeurs des ces checkbox ne sont pas pris en compte.
Qu'est ce que j'aurai oubli� dans mon input ?
Voici le viewmodel, tout simple :
La classe album
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 public class ListeAlbumsSerieViewModel : BaseViewModel { public int IdSerie { get; set; } public List<Album> Albums { get; set; } public ListeAlbumsSerieViewModel() { Albums = new List<Album>(); } }
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class Album { public virtual int NumAlbum { get; set; } public virtual Serie Serie { get; set; } public virtual string Titre { get; set; } public virtual string Je_L_Ai_O_N{ get; set; } public virtual byte[] Image { get; set; } [NotMapped] public virtual bool Je_Lai { get; set; } [NotMapped] public virtual string ImageData { get { string imreBase64Data = Convert.ToBase64String(Image); return string.Format("data:image/png;base64,{0}", imreBase64Data); } } public override bool Equals(object obj) { Album a = obj as Album; if (a == null) return false; return NumAlbum == a.NumAlbum && Serie.Id == a.Serie.Id; } public override int GetHashCode() { return (Serie.Id * 100) + NumAlbum; } }
Et la vue
Code CSHTML : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <ul class="list-group"> @for (int i = 0; i < Model.Albums.Count; i++) { <li class="list-group-item"> <div class="row"> <div class="col-lg-2"> <div> <img width="125" src="@Model.Albums[i].ImageData" /> </div> </div> <div class="col-lg-8"> <h3>@Model.Albums[i].Serie.Nom</h3> <h4 class="text-muted">@Model.Albums[i].NumAlbum - @Model.Albums[i].Titre</h4> </div> @Html.HiddenFor(a => @Model.Albums[i].NumAlbum) @* @Html.CheckBoxFor(a => @Model.Albums[i].Je_Lai)*@ <div class="col-lg-2"> <label> <input type="checkbox" class="option-input radio" name="Albums[@i].Je_Lai" value="@Model.Albums[i].Je_Lai" @(Model.Albums[i].Je_Lai ? "checked" : "") /> </label> </div> </div> </li> } </ul>
Merci beaucoup !
Partager