Передача дополнительных данных модели представления с EditorFor завершается неудачно в отношениях один ко многим - PullRequest
0 голосов
/ 13 июля 2010

У меня есть шаблон редактора (Views / Shared / EditorTemplates / HORDER.ascx), который наследует

System.Web.Mvc.ViewUserControl<CCOK2.Models.HORDER>

Моя view-модель имеет отношение один ко многим, которое я использую Html.EditorFor для отображения нескольких HORDERS

<%: Html.EditorFor(model => model.PEOPLE.HORDERS, new {fred="hello"})%>

В конце концов, я хочу передать данные для выпадающего списка, но на данный момент я просто пытаюсь передать строку "привет"

Если я добавлю следующее в HORDER.ascx

<%: ViewData.Count() %>

Я получаю вывод "0". Любая попытка завладеть данными представления не удалась.

Однако, если я использую EditorFor с одним элементом, он работает должным образом: я добавил FirstHorder в свою модель представления, установив его как model.PEOPLE.HORDERS.First (), затем <%: Html.EditorFor (model => model.FirstOrder). new {fred = "hello"})%> передает привет, как и ожидалось.

Итак ... есть ли способ заставить EditorFor работать с дополнительными данными при вызове их с отношением один-ко-многим?

EDIT: В другом месте было предложено использовать EditorFor в цикле ForEach для отдельных HORDERS. Это работает (т. Е. Дополнительные данные представления передаются правильно), но в итоге я получаю все элементы управления, созданные EditorFor, имеющие одинаковые идентификатор и имя, а не поле PEOPLE.HORDERS [n]., Что нежелательно.

1 Ответ

0 голосов
/ 22 июля 2010

После долгих путаниц кажется, что это невозможно сделать: я считаю, что это ошибка в фреймворке. Обходной путь должен вставить это в viewdata до вызова EditorFor.

...