Редактор для коллекции предметов в моей модели
Мой ViewModel имеет свойство, которое является коллекцией другой из моих сущностей модели, в данном случае CategoryTags (и каждый тег имеет тег и идентификатор).
1) Правильно ли я понимаю, что Html.EditorFor() не имеет интерфейса, который он может создать для ICollection?
2) Предполагая #1, я решил создать EditorTemplate, представляющий собой текстовое поле, в котором мой пользователь может вводить имена тегов через запятую, и jquery будет автоматически завершаться. Придется ли мне возвращать список имен тегов (или их соответствующих идентификаторов), а затем анализировать их обратно в рубрике CategoryTags на POST?
Спасибо!
1 ответ
- Правильно - вам нужен собственный шаблон (см. http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3)
- Да, это может сработать - связыватель модели будет заполняться правильно, если им присвоено правильное имя id[0] и т. Д. См. Статью Фила Хаака по этому адресу: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
Правка для #2 - я прочитал ваш оригинальный пост немного неправильно. Если вы поместите их все в одно текстовое поле, вам нужно будет их проанализировать (или создать свою собственную подшивку модели). У вас может быть редактор, который добавляет новые текстовые поля в DOM для каждого элемента, а затем связыватель модели будет правильно заполнять список. Однако в упомянутом выше случае вы можете сделать это вручную на сервере или использовать привязку собственной модели (что было бы довольно просто), чтобы разбить их на модель. Либо или:)