J'essaie d'utiliser une checkboxlist dans MonoRail pour représenter une relation de plusieurs à plusieurs tables. Il y a une table spéciale, une table SpecialTag, puis une table SpecialTagging qui est la table de mappage plusieurs à plusieurs entre Special et SpecialTag.MonoRail CheckboxList?
Voici un extrait de la classe modèle spécial:
[HasAndBelongsToMany(typeof(SpecialTag),
Table = "SpecialTagging", ColumnKey = "SpecialId", ColumnRef = "SpecialTagId")]
public IList<SpecialTag> Tags { get; set; }
Et puis dans mon add/edit vue spécial:
$Form.LabelFor("special.Tags", "Tags")<br/>
#set($items = $FormHelper.CreateCheckboxList("special.Tags", $specialTags))
#foreach($specialTag in $items)
$items.Item("$specialTag.Id") $Form.LabelFor("$specialTag.Id", $specialTag.Name)
#end
Le CheckBoxList rend correctement, mais si je sélectionne quelques-uns, puis cliquez sur Enregistrer, il n'enregistre pas les associations tag/special à la table SpecialTagging (l'entité transmise à l'action Save controller a une liste Tags vide). Une chose que j'ai remarquée est que les attributs name et value sont funky:
<label for="special_Tags">Tags</label><br>
<input id="3" name="special.Tags[0]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="3">Buy 1 Get 1 Free</label>
<input id="1" name="special.Tags[1]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="1">Free</label>
<input id="2" name="special.Tags[2]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="2">Half Price</label>
<input id="5" name="special.Tags[3]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="5">Live Music</label>
<input id="4" name="special.Tags[4]" value="UCampus.Core.Models.SpecialTag" type="checkbox"> <label for="4">Outdoor Seating</label>
Vous avez des idées?
Merci! Justin