Сложный сильно типизированный объект + ModelBinder по умолчанию - PullRequest
2 голосов
/ 10 февраля 2010

У меня есть следующая сложная модель: Категория - имеет -> Список который имеет -> Список

Я пытаюсь создать действие, в котором я могу вытащить все существующие категории и вставить для каждой категории один Список все вместе, включая подпункты. Например: -Cat1 - NewItemGroup1 --- NewItem1 --- NewItem2 --- NewItem3 --- NewItem4

-Cat2 - NewItemGroup2 --- NewItem1 --- NewItem2 --- NewItem3 --- NewItem4

Мои вопросы, могу ли я добиться этого с помощью стандартного подшивщика моделей? или я должен использовать что-то еще? и сколько работы это добавит :)?

Спасибо!

1 Ответ

3 голосов
/ 10 февраля 2010

Вы можете создавать сложные объекты и списки с помощью связывателя моделей по умолчанию, вам просто нужно проиндексировать опубликованные данные, чтобы он мог правильно их выяснить.

Статья Фила Хаака Привязка модели к списку охватывает то, что вам нужно сделать. В двух словах, просто проиндексируйте поля списка со скрытым полем, например:

<input type="hidden" name="products.Index" value="0" />
<input type="text" name="products[0].Name" value="Beer" />
<input type="text" name="products[0].Price" value="7.32" />

Именованное поле products.Index описывает, что для вашего списка "продуктов" есть индекс "0". В этом случае поля «Имя» и «Цена» являются свойствами объекта с индексом 0. Обратите внимание, что индекс не должен быть целым числом, поэтому, если вы привязываетесь к словарю, вы можете использовать что угодно в качестве значения индекса.

...