2013-04-16 3 views
0

Я создаю мастер, и мне нужно развернуть список, который я создал. Список моей модели контактов. Мне нужно поместить это в форму, чтобы, когда я вернусь к контроллеру на своем последнем шаге, у меня будет список контактов как часть модели мастера (теперь он просто возвращает null). Для других объектов простой формы я использую HiddenFor для хранения данных в модели. Это не работает, потому что скрытый - это просто текстовое поле, и у меня есть сложный объект.Добавить список скрытых моделей в форму Razor

Я подумал о создании DropDownListFor и обертывании его в скрытый div. Это просто пэчворк и на самом деле займет немного работы, чтобы получить DropDownListFor для принятия другого типа объекта (если он вообще будет работать).

Я рассмотрел вопрос о сохранении списка в Session ["Contacts"], но это не похоже на правильный путь MVC. Есть ли у кого-нибудь лучшие предложения?

Спасибо, TJ

--UPDATE--

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

вид Модель

public class WizardViewModel 
{ 
    //... 
    public List<Contact> ContactList { get; set; } 
    //... 
} 

Код контроллера

//Step 4 in the wizard 
model.ContactList = CALL FUNCTION THAT CREATES LIST BASED ON FORM SELECTIONS 

//other calculations needed for step 5 

//Save Contacts for later 
Session["Contacts"] = model.ContactList; 


//Step 5 in the wizard 

//Readd the contacts to the model 
model.ContactList = (List<Contact>)Session["Contacts"]; 

//Save the model to pass to the report page 
//My report viewer is on an ASPX page so I am passing all the data here with a session 
Session["ReportModel"] = model; 

Сеанс сохранения произведений, как и ожидалось. Мне просто не кажется, что я должен использовать сеансы для сохранения данных со страницы на страницу с помощью MVC. Мне нужно, когда вы переходите от MVC к ASPX, поэтому меня не беспокоит Session ["ReportModel"] только Session ["Contacts"]. Благодарим вас за любые предложения.

+0

Вам нужно будет опубликовать, как выглядят ваши действия и что ваша модель находится на виду. Является ли 'model' в вашем контроллере кодом типа' WizardViewModel'? Пока неясно, на каком этапе находится ваш код контроллера. Вывешен ли код контроллера для создания формы? – merekel

ответ

1

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

Эти контакты заполнены из вашей формы или являются глобальными контактами?

+0

Спасибо за ваш комментарий, я изменил свой пост, чтобы уточнить, что я не описал должным образом. – JabberwockyDecompiler

Смежные вопросы