I tiene un controlador de lógica hará que busca un: valor de sesiónMVC 3 Session.Abandon() llamada antes de fijar un TempData [ "MyValue"] = "foo" hace que el siguiente controlador de tener TempData como nulo
//checks value null etc.. for existing record in session memory.
Session["certnum"]
Luego, en el controlador de E habían decidido tener una condición donde:
//is called to initiate a New Record that will be created.
Session.Abandon();
Sin embargo, en la codificación de procedimiento es que Session.Abandon(); viene antes de la creación de TempData ["myobject"] = "foo", y al recorrer el código, TempData en la ventana inmediata muestra mi valor y todo parece estar bien. A continuación, a redirigir a otro controlador:
return RedirectToAction("ChildInfo", "NewRecord");
Este método ChildInfo ya no tiene el valor TempData ... Ahora bien, es nula. El Método de abandono de sesión se llamó mucho antes de que se estableciera el valor de TempData, no estoy seguro de si esto es un error con MVC Sessions, pero eso no tiene sentido para mí. Si estoy creando una nueva sesión lighweight TempData, entonces debe persistir en el siguiente controlador. Si elimino el método Session.Abandon(), el valor de TempData continuará funcionando como lo hizo anteriormente.
Lo importante aquí es que TempData depende de la sesión. La sesión se ha ido, por lo tanto, TempData se ha ido. –
@ Adam Sí, me doy cuenta de que, sin embargo, estoy llamando a Session.Abandon() antes de crear un valor de TempData, estoy en el mismo método actionresult de un controlador, pero aun así, eso me parece una locura. –
¿por qué sería una locura? está restableciendo un objeto requerido para tempdata. Eso es como decir "borro todas las filas de la tabla, pero no entiendo por qué en la próxima solicitud la fila que voy a solicitar no está allí". :) –