Чтобы привязать мою коллекцию EF4 EntityCollection к значениям флажков, я должен вручную создать флажки в цикле следующим образом:
<p>
<%: Html.Label("Platforms") %><br />
<% for(var i = 0; i < Model.AllPlatforms.Count; ++i)
{ %>
<%: Model.AllPlatforms[i].Platform.Name %> <input type="checkbox" name="PlatformIDs" value="<%: Model.AllPlatforms[i].Platform.PlatformID %>" /><br />
<% } %>
</p>
Это работает, но оно не заполняет группу флажков автоматически существующими значениями при редактировании объекта модели. Могу я выдумать что-то вроде?
<p>
<%: Html.Label("Platforms") %><br />
<% for(var i = 0; i < Model.AllPlatforms.Count; ++i)
{ %>
<%: Model.AllPlatforms[i].Platform.Name %> <input type="checkbox" name="PlatformIDs" value="<%: Model.AllPlatforms[i].Platform.PlatformID %>" checked=<%: Model.GameData.Platforms.Any(p => PlatformID == i) ? "true" : "false" %> /><br />
<% } %>
</p>
Я полагаю, что по этим направлениям должно быть что-то, что сработает, и мне просто интересно, нахожусь ли я на правильном пути.
РЕДАКТИРОВАТЬ: я намеренно держусь подальше от флажка MVC вспомогательных методов MVC, поскольку они слишком негибки для моих нужд. Мои флажки используют целые числа в качестве значений в зависимости от дизайна.