Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在TempData中存储列表引发异常_Asp.net Core_Asp.net Core 2.0 - Fatal编程技术网

Asp.net core 在TempData中存储列表引发异常

Asp.net core 在TempData中存储列表引发异常,asp.net-core,asp.net-core-2.0,Asp.net Core,Asp.net Core 2.0,我试图在.NETCore2.1中的TempData中存储一个列表。问题是它在tempdata中存储列表时没有给出任何错误,但是在return语句之后,它总是抛出一个异常并将我抛出到ajax调用的error部分。在调试ajax调用中的错误消息时,它只显示“error” 以下是控制器代码: IList<Product> productList = new List<Product> { new Product{ProductId=Guid.NewGuid().T

我试图在.NETCore2.1中的TempData中存储一个列表。问题是它在tempdata中存储列表时没有给出任何错误,但是在return语句之后,它总是抛出一个异常并将我抛出到ajax调用的error部分。在调试ajax调用中的错误消息时,它只显示“error” 以下是控制器代码:

 IList<Product> productList = new List<Product>
 {
     new Product{ProductId=Guid.NewGuid().ToString(),Name="142525"},
     new Product{ProductId=Guid.NewGuid().ToString(),Name="122555"},
     new Product{ProductId=Guid.NewGuid().ToString(),Name="125255"}
 };

 TempData["Products"] = productList;
 return Json(productList);
下面是启动文件代码:

 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddSessionStateTempDataProvider();
 services.AddSession();


我也尝试过将app.UseCookiePolicy移动到app.UseMvc之后,但仍然没有成功。这是微软官方文档链接,我已经尝试了这里提到的所有内容。我做错了什么?

您的问题是由
TempData
不支持复杂类型引起的

您可以尝试将对象序列化为字符串,并将其保存在
TempData

TempData["Products"] = JsonConvert.SerializeObject(productList);

您的问题是由
TempData
不支持复杂类型引起的

您可以尝试将对象序列化为字符串,并将其保存在
TempData

TempData["Products"] = JsonConvert.SerializeObject(productList);

与我们分享ajax请求。我更新了我的问题并添加了ajax请求与我们分享ajax请求。我更新了我的问题并添加了ajax请求
TempData["Products"] = JsonConvert.SerializeObject(productList);