当我尝试将IEnumerable传递给Tempdata时,运行此Index控制器给我错误。
在调试时,TempData [“ ProductCategory”]似乎在Watch中存储了预期的数据,但是在存储后无法呈现Html View。但是,当我存储简单的搅拌时,Html确实会显示。
public IActionResult Index()
{
// This gives me http error 500
//TempData["ProductCategory"] = productcategoryrepository.GetAllProductCategory();
// This works at least!
TempData["ProductCategory"] = "test";
//TempData.Keep();
return View();
}
public IEnumerable<ProductCategory> GetAllProductCategory()
{
return _context.ProductCategory.ToList();
}
其他信息:
public partial class ProductCategory
{
public ProductCategory()
{
Product = new HashSet<Product>();
}
public int ProductCategoryId { get; set; }
public string ProductCategoryName { get; set; }
public string ProductCategoryDescription { get; set; }
public virtual ICollection<Product> Product { get; set; }
}
public partial class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string ProductDescription { get; set; }
public string ImageLocation { get; set; }
public int? ProductCategoryId { get; set; }
public virtual ProductCategory ProductCategory { get; set; }
}
答案 0 :(得分:0)
要能够在会话或临时数据中存储数据,该类型必须可序列化。 IEnumerable<T>
无法序列化。尝试使用List<T>
。
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.1