¿Puede alguien explicar el propósito de TempData en MVC? Entiendo que se comporta como ViewBag pero, ¿qué hace más allá de eso?MVC C# TempData
Respuesta
TempData está destinado a ser una instancia de muy corta vida, y usted debe usar solo durante las solicitudes actuales y subsiguientes. Dado que TempData funciona de esta manera, necesita saber con certeza cuál será la próxima solicitud , y redirigir a otra vista es la única vez que puede garantizar esto. Por lo tanto, el único escenario donde utilizar TempData funcionará de manera confiable es cuando está redirigiendo. Esto es porque un redireccionamiento mata la solicitud actual (y envía el código de estado HTTP 302 Objeto movido al cliente), luego crea una nueva solicitud en el servidor para servir a la vista redirigida. Mirando hacia atrás en la muestra de código HomeController anterior significa que el objeto TempData podría arrojar resultados diferentes a los esperados porque no se puede garantizar el siguiente origen de solicitud . Por ejemplo, la próxima solicitud puede originar desde una máquina y una instancia de navegador completamente diferentes.
http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications
ViewBag
Permite crear propiedades dinámicas
de datos que pasan entre el controlador y vista
Controller
ViewBag.Name= "Lion";
Ver
<div>
<h4>@ViewBag.Name</h4>
</div>
TempData
TempData está destinado a ser una instancia de muy corta vida
sólo se debe utilizar durante el actual y el s solicitudes ubsequent única
diccionario TempData se utiliza para compartir datos entre las acciones del controlador
TempData["Name"] = "Lion";
he escrito Blog post sobre this.Check que How to use Asp.Net MVC TempData Properly ?
TempData es un objeto de diccionario que se deriva de la clase TempDataDictionary y se almacena en una sesión de vidas cortas.
public TempDataDictionary TempData { get; set; }
Es una propiedad de ControllerBase class.It se utiliza para pasar datos desde la solicitud actual a petición posterior (medios redireccionamiento de una página a otra). Su vida útil es muy corta y solo permanece hasta que la vista de destino esté completamente cargada. Es necesario encasillar para obtener datos y verificar valores nulos para evitar errores. Se usa para almacenar solo mensajes de una sola vez como mensajes de error, mensajes de validación.
¿Qué es TempData?
Tempdata ayuda a almacenar/conservar valores dentro de una sola solicitud. Este es uno de los conceptos para mantener el estado en ASP .Net MVC.
¿Cómo almacenar/persistir los datos en la próxima solicitud? TempData conserva los valores para la próxima solicitud en 4 condiciones diferentes en MVC. Son
Condición 1 - No se lee en la primera solicitud.
Condición 2: leer en la primera solicitud.
Condición 3: lea & persistiendo utilizando Mantener.
Condición 4 - Persistir utilizando Peek and Read.
No leído en la primera solicitud: Si no leemos "TempData" en la solicitud actual, el valor de "TempData" se mantendrá para la próxima solicitud.
Lea en la primera solicitud: Si leemos "TempData" en la solicitud actual, entonces el valor de "TempData" no se mantendrá para la próxima solicitud.
Lea & Persista utilizando Keep: Si leemos "TempData" en la solicitud actual y podemos mantener el método para persistir TempData para la próxima solicitud. En MVC, tenemos métodos de mantener nulo() y mantener nulo (clave de cadena) para conservar los datos.
http://dotnet-helpers.com/mvc/how-to-persist-data-with-tempdata-using-peek-and-keep-in-mvc/
- 1. ASP.NET MVC Store TempData en Cookie
- 2. ASP.NET MVC TempData en cookie del navegador
- 3. ASP.NET MVC - TempData - Buena o mala práctica
- 4. Envoltorio TempData
- 5. Cuándo usar TempData vs Session en ASP.Net MVC
- 6. ¿Para qué se utiliza la colección TempData en asp.net MVC?
- 7. TempData No está borrando
- 8. TempData: ¿Es seguro?
- 9. Diferencia entre ViewData y TempData?
- 10. Acceso a TempData desde HttpContext.Current
- 11. uso TempData en un error de Ayudante: El nombre 'TempData' no existe en el contexto actual
- 12. Prueba de la unidad TempData en ASP.NET MVC3
- 13. ASP.NET MVC: borrar TempData después de ejecutar un método de controlador
- 14. ¿Cómo se prueba para que TempData se configure en MVC 2 donde hay una redirección?
- 15. ¿Cuál es el alcance y la visibilidad de TempData en ASP.NET MVC?
- 16. MVC 3 Session.Abandon() llamada antes de fijar un TempData [ "MyValue"] = "foo" hace que el siguiente controlador de tener TempData como nulo
- 17. Usando TempData mientras <modoSesiónState = "Desactivado" />
- 18. ASP.NET MVC CookieTempDataProvider: ¿alguna experiencia?
- 19. MVC C emergente # modal
- 20. TempData se vuelve nulo después de actualizar la página
- 21. ¿Es posible acceder a la clave/valor TempData desde HttpContext?
- 22. TempData no se destruirá después de la segunda solicitud
- 23. Redirigir después de publicar en ASP.NET MVC
- 24. C# mvc model vs viewbag
- 25. asp.net mvc C# javascript web.config
- 26. C# MVC enrutamiento - múltiples rutas
- 27. mvc C# html.dropdownlist y viewbag
- 28. C# MVC 4 ControllerName atributo
- 29. Objeto similar a TempData en WebForms - Estado de sesión solo para 1 Solicitud adicional
- 30. desventajas del contenedor de temperatura MVC 3
la falta de información sobre este tema es molesto. ¿Cómo funciona Tempdata dentro del protocolo HTTP? ¿es una cookie efímera como https://www.playframework.com/documentation/2.6.x/JavaSessionFlash de Play es algo que se almacena en el objeto de sesión del lado del servidor? Si es así, esto significa que si tiene varios servidores, es posible que no obtenga ese TempData, ya que solo existe en uno de ellos, ¿no? –