2012-04-11 11 views
20

Mam wartość RedirectToAction jako wartość zwracaną w kontrolerze i w moim widoku używam ViewBag. Podczas gdy jest to znany problem, że ViewBag staje się pusty po RedirectToAction. Mam problem, gdy ponownie zainicjuję wartości ViewBag w moim przeciążonym kontrolerze w metodzie OnActionExecuting. ViewBag jest znowu pusty. Ale problem polega na tym, że na moim lokalnym komputerze (win7) działa dobrze, ale na serwerze hostingowym (wygrana 2008) ulega awarii. Czy ktoś może powiedzieć, co może spowodować? Może to ustawienie, czy coś?ViewBag ma wartość NULL po RedirectToAction (+ reinitialization of ViewBag)

+0

Po przesłaniu kodu, abyśmy mogli lepiej zrozumieć – Iridio

Odpowiedz

1

było wyjątkiem głąb warstwy danych, która błędnie przechwytywane, a tym samym zapobiega propagacji ale spowodowało ViewBag zanikający.

Należy więc zachować ostrożność przy chwytaniu wyjątków.

42

ViewBag i ViewData tylko zachowują bieżącą prośbę. TempData jest rzeczą, aby używać podczas korzystania z przekierowań (i tylko wtedy): http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications stany to jasno:

[...] przedmiot TempData działa dobrze w jednej podstawowej scenariusz:

  • Przekazywanie danych pomiędzy prądem i następne żądania HTTP
+0

TempData używa sesji, a ja nie chcę używać sesji, również ciąg zapytania ani jak przekazać wartość po przekierowaniu? – KnowGe

+0

Zawsze możesz przesłonić dostawcę TempData, jeśli chcesz. Oto przykład dostawcy TempData opartego na plikach cookie, ale zawsze możesz stworzyć coś innego, co ma sens w Twoim scenariuszu: https://brockallen.com/2012/06/11/cookie-based-tempdata-provider/ –

+0

dzięki za szybką odpowiedź na stary post. Po przekierowaniu obiekt odpowiedzi odnawia się, a właściwość cookie nie może zawierać wartości. – KnowGe

Powiązane problemy