Редактор для коллекции предметов в моей модели - PullRequest
21 голосов
/ 22 апреля 2011

My ViewModel имеет свойство, которое является коллекцией другой из моих сущностей модели, в данном случае CategoryTags (и каждый тег имеет тег и идентификатор).

1) Правильно ли я понимаю, что Html.EditorFor () не имеет интерфейса, который он может создать для ICollection?

2) Предполагая # 1, я решил создать EditorTemplate, представляющий собой текстовое поле, в котором мой пользователь может вводить имена тегов через запятую, и jquery будет автоматически завершаться. Придется ли мне возвращать список имен тегов (или их соответствующих идентификаторов), а затем анализировать их обратно в рубрике CategoryTags на POST?

Спасибо!

1 Ответ

19 голосов
/ 22 апреля 2011
  1. Правильно - вам нужен собственный шаблон (см. http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3)
  2. Да, это может сработать - подшивка модели будет заполняться правильно, если им присвоено правильное имя id [0] и т. Д. См. Статью Фила Хаака об этом:

Правка для # 2 - я немного неправильно прочитал ваш оригинальный пост. Если вы поместите их все в одно текстовое поле, то вам нужно будет проанализировать их (или создать свой собственный механизм связывания моделей). Вы можете иметь редактор, который добавляет новые текстовые поля в DOM для каждого элемента, а затем связыватель модели будет корректно заполнять список. Однако в случае, о котором вы упомянули, ваши варианты вручную делают это на сервере или используют вашу собственную модель связывания (что было бы довольно легко здесь), чтобы разбить их на модель. Либо или:)

...