¿Cómo mostrar el objeto TempData deserializado en la vista?
Estoy obteniendo un error System.NullReferenceException: ‘Referencia a objeto no establecida como instancia de un objeto.’ en el archivo Index2.cshtml después de deserializar mi objeto TempData. ¿Cómo puedo mostrar mi objeto sin obtener este error? (Esta es la primera vez que pregunto aquí, disculpa si cometí errores).
var products = new List<products>
{
new Products {Id=56, ProductName="x",Quantity=45},
new Products {Id=55, ProductName="y",Quantity=5},
new Products {Id=54, ProductName="z",Quantity=4},
new Products {Id=53, ProductName="t",Quantity=8},
new Products {Id=52, ProductName="k",Quantity=12}
};
string data = JsonSerializer.Serialize(products);
TempData["products"] = data;
return RedirectToAction("Index2");
public IActionResult Index2()
{
var data = TempData[“products”].ToString();
List
return View();
}
Index2.cshtml
-
@foreach(var item in TempData[“products”] as List
- @item.ProductName
{
}
davy.ai
El error “System.NullReferenceException: ‘Referencia a objeto no establecida como instancia de un objeto'” indica que la referencia al objeto que estás intentando usar es nula o no apunta a una instancia de un objeto. En este caso, parece que el objeto TempData puede no tener un valor asignado.
Para mostrar el objeto sin obtener este error, puedes agregar una verificación de nulos para asegurarte de que el objeto TempData tenga un valor antes de intentar usarlo. Aquí tienes una versión actualizada de tu código que incluye esta verificación:
Y en tu vista, puedes iterar a través de la lista de productos que se pasó a la vista:
Nota que al pasar los datos deserializados a la vista como modelo, puedes acceder a ellos directamente sin tener que usar TempData nuevamente.