🧭Temp Data

TempData es un diccionario de almacenamiento temporal que se utiliza para pasar datos entre acciones en ASP.NET Core. Lo que hace especial a TempData es que los datos que almacenas en él están disponibles para la siguiente solicitud y se eliminan automáticamente después de eso. Es perfecto para mensajes de error, confirmación, o cualquier otro tipo de datos que solo necesites de manera temporal entre dos solicitudes.

Uso Básico de TempData

Para almacenar un valor en TempData, simplemente asigna un valor a una clave, similar a cómo lo harías con un diccionario:

TempData["Mensaje"] = "Este es un mensaje temporal.";

Para leer y mostrar este mensaje en una vista o en otra acción, accedes a él usando la misma clave:

var mensaje = TempData["Mensaje"] as string;

Recuerda que una vez que accedes a los datos en TempData, se marcan para eliminación al final de la solicitud.

Mostrando Mensajes de Error con TempData

Imagina que quieres mostrar un mensaje de error después de que un usuario intente subir un archivo inválido:

  1. En tu acción POST, al detectar un error:

TempData["ErrorMensaje"] = "Formato de archivo no válido.";
return RedirectToAction("TuAccion");
  1. En la acción a la que rediriges o en la vista correspondiente:

@if(TempData["ErrorMensaje"] != null)
{
    <script>
        alert('@TempData["ErrorMensaje"]');
    </script>
}

Persistiendo Datos en TempData

Si necesitas que los datos en TempData sobrevivan a más de una redirección, puedes usar TempData.Keep():

var mensaje = TempData["Mensaje"] as string;
TempData.Keep("Mensaje"); // Esto asegura que "Mensaje" esté disponible para una solicitud más.

Consejos y Mejores Prácticas

  • Usa TempData con moderación, principalmente para transferencias de datos de corta duración entre solicitudes, como mensajes flash.

  • Para datos que necesiten persistir más allá de una solicitud, considera usar otras técnicas como ViewData, ViewBag, o pasar modelos a las vistas.

  • Siempre verifica si TempData contiene la clave que buscas antes de intentar acceder a ella para evitar errores.

Última actualización