2016-06-17 5 views
1

Если у меня есть модель public string name {get;set;} в моей модели, и я хочу передать ее с моего контроллера, на представление, а затем обратно на контроллер (в списке - > Редактировать -> Сохранить тип примера), но do not хочу показать его в представлении, тогда у меня просто есть поле @Html.HiddenFor..., и оно будет передано с моделью обратно на действие Save на моем контроллере. Я это понимаю.MVC pass ICollection от контроллера для просмотра и возврата к контроллеру без его отображения

Что делать, если у меня такая же ситуация со списком вещей. Например, public virtual ICollection<Contact> Friends {get;set;}, который затем я хочу перейти с контроллера на вид , не показывать его, но он сохраняется и передается обратно контроллеру?

Благодаря

+0

Что вы будете делать со списком контактов? –

+0

В идеале я бы привел ICollection к представлению, покажу его как многоточечный html, а затем верну его обратно в контроллер. Благодаря тому, что у меня есть, я могу только вернуть мультиселектор обратно контроллеру отдельно, а не как часть модели. – blubberbo

ответ

0

Основываясь на Вашем случае, это было бы расточительно, чтобы сделать весь Friends объект и POST возвращается к контроллеру. Вы можете кэшировать объект (в вашем сеансе, например, если он недолговечен) и иметь множественный выбор только POST идентификаторов для ваших контактов.

+1

Это правда. Я должен обрабатывать только идентификаторы. спасибо – blubberbo

0

Я бы сериализации его в строку JSON, а затем передать его обратно с @Html.HiddenFor помощника. Внутри действия Save я бы затем десериализовал его обратно на ICollection<Contact>.

Например:

string friends = JsonConvert.SerializeObject(Friends); 

Сохранить действие:

var friends = JsonConvert.DeserializeObject<ICollection<Contacts>>(myReturnData); 
+0

ой, дух. отличный ответ! Я сделаю это! – blubberbo