2012-04-11 31 views
20

コントローラの戻り値としてRedirectToActionがあり、ViewBagを使用しています。 RedirectToActionの後にViewBagが空になることはよく知られている問題ですが、 OnActionExecutingメソッドでオーバーロードされたコントローラのViewBag値を再初期化するときに問題が発生します。 ViewBagは再び空です。 しかし、私のローカルPC(win7)では問題なく動作していますが、Webホスティングサーバー(2008年に勝つ)ではクラッシュします。だから、何が起こる可能性があるのか​​を助けることができますか?多分それは設定か何かですか?RedirectToAction(ViewBagの再初期化)後にViewBagがNULLになる

+0

私たちは理解しやすいようにコードを投稿してください – Iridio

答えて

1

を要求誤って捕獲し、それによって伝播を防止しかしViewBagが消失せた深いデータ層内の例外がありました。

例外をキャッチすることに注意してください。

42

ViewBagとViewDataは、現在の要求にのみ有効です。 TempDataをあなたがリダイレクトを使用するときに使用(だけにして)するためのものである:http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications状態明確この:

[...] TempDataをオブジェクトが一つの基本シナリオではうまく機能:

  • データを渡します現在と次のHTTP間
+0

TempDataはセッションを使用していますが、リダイレクト後も値を渡すことはできません。 – KnowGe

+0

必要に応じて、いつでもTempDataプロバイダをオーバーライドできます。次に、CookieベースのTempDataプロバイダの例を示しますが、シナリオでは他にも何かを作成することができます:https://brockallen.com/2012/06/11/cookie-based-tempdata-provider/ –

+0

古い投稿のための迅速な返信に感謝します。リダイレクト後、応答オブジェクトは更新され、Cookieプロパティは値を保持できません。 – KnowGe

関連する問題