2012-04-11 29 views
20

Tengo RedirectToAction como valor de retorno en un controlador y, en mi opinión, uso ViewBag. Si bien es un problema bien conocido, ViewBag queda vacío después de RedirectToAction. Tengo un problema cuando reinicio los valores de ViewBag en mi controlador sobrecargado en el método OnActionExecuting. ViewBag está vacío de nuevo. Pero el problema es que en mi PC local (win7) está funcionando bien, pero en el servidor de alojamiento web (ganar 2008) se bloquea. Entonces, ¿puede alguien ayudar diciendo qué puede causar eso? Tal vez es un ajuste o algo así?ViewBag es NULL después de RedirectToAction (+ reinicialización de ViewBag)

+0

Publique su código para que podamos entender mejor – Iridio

Respuesta

1

Hubo una excepción en el interior de la capa de datos que fue capturado incorrectamente y por lo tanto impedido de propagación pero causó ViewBag de fuga.

Tenga cuidado con las excepciones de captura.

42

ViewBag y ViewData solo sobreviven a la solicitud actual. TempData es lo que hay que utilizar cuando se utilizan redirecciones (y sólo entonces): http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications eso claramente

[...] el objeto TempData funciona bien en un escenario básico:

  • datos que pasan entre el HTTP actual y la siguiente pide
+0

TempData utiliza la sesión, y no quiero utilizar la sesión, tampoco consulta cadena, ¿cómo puede pasar el valor después de la redirección? – KnowGe

+0

Siempre puede anular el proveedor de TempData, si así lo desea. Este es un ejemplo de un proveedor TempData basado en cookies, pero siempre puede crear algo más que tenga sentido para usted en su escenario: https://brockallen.com/2012/06/11/cookie-based-tempdata-provider/ –

+0

gracias por la respuesta rápida para la publicación anterior. Después de la redirección, el objeto de respuesta se renueva y la propiedad de la cookie no puede contener el valor. – KnowGe