2016-06-17 11 views
1

私のモデルにpublic string name {get;set;}があり、これをコントローラからビューに渡してからコントローラに戻したい場合は、 >編集 - >保存タイプの例)を表示しないビューに表示したい場合は、@Html.HiddenFor...フィールドがあり、コントローラのSaveアクションに戻ってモデルに渡されます。という事は承知しています。MVCは、コントローラからビューへのICollectionを渡し、コントローラに戻さずに返します。

私は物事のリストと同じ状況がある場合はどうなりますか?例えばpublic virtual ICollection<Contact> Friends {get;set;}の場合、コントローラーからビューに渡したいと表示されていませんが、それを保持してコントローラーに戻しますか?

おかげ

+0

連絡先のリストコレクションではどうしますか? –

+0

理想的には、ICollectionをビューに持ってきて、HTMLマルチセレクションとして表示してから、コントローラに戻します。私が持っているものでは、モデルの一部としてではなく、マルチ選択を個別にコントローラに戻すことしかできません。 – blubberbo

答えて

0

、全体Friendsオブジェクトをレンダリングする無駄だろうとPOSTが戻ってあなたのコントローラにあります。オブジェクトをキャッシュすることができます(例えばセッションが短い場合など)。そして、複数選択するだけで、連絡先のIDがPOSTされます。

+1

それは本当です。私はIDだけを扱うべきです。ありがとうございました – blubberbo

0

私は、JSON文字列にそれをシリアル化し、その後@Html.HiddenForヘルパーと一緒に戻って渡します。 Saveアクションの中で私はICollection<Contact>にそれを逆直列化します。例えば

string friends = JsonConvert.SerializeObject(Friends); 

保存アクション:あなたのユースケースに基づいて

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

oh、duh。素晴らしい答え!私はそのショットを与えるだろう! – blubberbo

関連する問題