TempData
uses Session
, which itself uses IDistributedCache
. IDistributedCache
doesn’t have the capability to accept objects or to serialize objects. As a result, you need to do this yourself, i.e.:
TempData["PopupMessages"] = JsonConvert.SerializeObject(_popupMessages);
Then, of course, after redirecting, you’ll need to deserialize it back into the object you need:
TempData["PopupMessages"] = JsonConvert.DeserializeObject<List<PopupMessage>>(TempData["PopupMessages"].ToString());