Передача дополнительных данных в EditorTemplate

Допустим, у меня есть LineItem (из примера чрезмерно используемой корзины покупок), и я хочу отобразить его с помощью EditorTemplate .

У меня все в порядке с рендерингом с использованием @ Html.EditorFor (m => m.LineItems) из родительского представления (частично или иначе), но сбивает с толку лучший подход для передачи дополнительных данных (скажем, SelectList, в котором есть данные, поступающие из базы данных) в шаблон.

Ясно, что я не должен загрязнять модель LineItem, добавляя эти посторонние элементы (которые, однако, требуются с точки зрения представления).

Я пытаюсь увидеть если есть строго типизированный способ сделать это, прежде чем прибегать к уловкам ViewBag / ViewData.

Я попытался создать конкретную модель представления LineItem для передачи данных, но он искажает имена, генерируемые MVC, и рекламирует дополнительный слой к коллекции (поскольку я передаю IEnumerable <> модели представления вызову EditorFor () вместо IEnumer able <> фактического LineItem)

Кроме того, это неправильное использование EditorTemplate? Требуется ли LineItem раскрывающийся список с параметрами, поступающими из таблицы базы данных, слишком много для EditorTemplate?

Пожалуйста, направьте меня к нирване MVC. Пока я жду ответов, я попробую другие идеи!

Чтобы уточнить: я подумываю об использовании EditorTemplate, потому что он предоставляет мне автоматическую обработку коллекции. В противном случае весь бизнес [id] станет слишком липким.

10
задан kenwarner 12 August 2011 в 14:40
поделиться