2011-12-02 11 views
0

あるコントローラから別のコントローラに少量のデータを渡すと、ViewBagを使用しますか? ViewData?セッション...など...正しいアプローチは何ですか?MVC3コントローラから別のコントローラにデータを渡す

私の最初の[Controller1]/[Action:Register]はユーザIDを生成し、別のコントローラにリダイレクトする必要があります。

return RedirectToAction( "Create"、 "Controller2");

その後の私はデータ+プラスデータベースへのユーザーIDを格納し、それがデータベースにデータ+プラスユーザーIDを格納HttpPost上で同じように動作し、次のコントローラにリダイレクトしています(HttpPost)を作成します。私は少しは私が取るべきアプローチ失われ、どのように私は安全な方法/正しい方法でユーザーIDを渡すん午前

?アドバイスは、そのプライベートでない場合は、あなたに

答えて

2

ありがとう、ちょうどURLに渡してください。あなたのリダイレクトに第三のパラメータを使用して: 新しい{ID = whateverValue}

それがプライベートデータである場合、TempDataをを使用する - 次の要求がそれを読み出した後、それは

+0

感謝をRouteValueDictionaryをチェックアウトして、コントローラ#3を呼び出すときにTempDataをには使用できませんコントローラ#2でのみ利用可能になります。プロセス全体を通してどのように維持しますか?ありがとう、 – Ben

+0

セッションは大丈夫ですか? – Ben

+0

セッションはOKです。完了したらそれを削除することを忘れないでください。 –

0
(ウェルリクエストの終了時に)除去されます

私はあなたがこれを達成するためにルート値を活用できると信じています。次に例を示します。

return RedirectToAction("Create", "Controller2", new { userId = myVar }); 

ルート値の詳細については、それは、私がURLに表示していないIDを希望http://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary.aspx

+0

ありがとうございます。私はこのIDをURLに表示したくありません。 – Ben

関連する問題