Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastruct.DefaultTempDataSerializer'无法序列化类型的对象

use*_*768 1 asp.net-core-3.1

当我将 .net core 应用程序从 2.0 迁移到 3.1 时,以下方法 services.AddCookieTempData() 不起作用,因为它引用程序集“AspNetCore.Mvc.CookieTempData”。如果我们评论这段代码,它会显示以下错误消息。请告诉我们此方法的替代方法是什么。

公共无效ConfigureServices(IServiceCollection服务){ services.AddCookieTempData();

错误消息:“Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastruct.DefaultTempDataSerializer”无法序列化类型的对象

The*_*lus 11

您的问题似乎与https://github.com/aspnet/Mvc/issues/6711中报告的问题类似。Elion 在该页面上写道,“为简单起见,TempData 序列化程序目前仅支持有限的数据类型集。它支持一些基本类型,例如 int、string 和 bool,以及这些类型的简单容器,例如列表。”

同一页面指向在 TempData 中存储复杂对象的解决方法。hem 那里得到高度评价的答案(/sf/answers/2452967401/)建议使用扩展方法并提供示例代码。