Связывание модели со списком моделей моделей с помощью сетки MvcContrib
Я пытаюсь привязать список объектов модели к сетке с помощью помощника MvcContrib Grid. Очевидно, что создание таблицы HTML достаточно просто, но я пытаюсь вернуть все выбранные строки (или все строки и выполнить фильтрацию через Where(x => x.Selected)).
Вот фиктивная версия того, что я имею в виду:
Модель:
public class Player
{
[ScaffoldColumn(false)]
public int Id { get; set; }
public string Name { get; set; }
public int JerseyNumber { get; set; }
public string Position { get; set; }
[ScaffoldColumn(false)]
public bool Selected { get; set; }
}
Посмотреть:
@model democode.Models.Player
@using (Html.BeginForm())
{
@{
var grid = Html.Grid(Model)
.AutoGenerateColumns()
.Columns(c => c.For(p => Html.CheckBoxFor(_ => p.Selected)).InsertAt(0))
.Columns(c => c.For(p => Html.HiddenFor(_ => p.Id)))
grid.Render();
}
<p>
<input type="submit" value="Submit" />
</p>
}
Итак, вы смотрите на сетку хоккеистов с флажком перед каждым, позволяющим пользователю выбрать один или несколько. При нажатии кнопки "Отправить" я хотел бы, чтобы он отправил коллекцию обратно (при этом следует понимать, что все, кроме "Выбрано" и "Идентификатор", будут иметь значение null/default), но я понимаю, что проблема заключается в том, что записи, встречающиеся в данных POST, имеют перекрывающиеся ключи в список пар ключ-значение. В прошлом я успешно работал над этим, написав от руки таблицу HTML и используя стратегию, которую Фил Хаак описывает здесь: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
У меня вопрос, могу ли я сделать то же самое, используя помощника Grid от MvcContrib, или это больше, чем стоит?