Asp.net-Core-2.2
Asp.Net 核心臨時數據和重定向操作不起作用
我的 basecontroller 類中有一個方法,可以將數據添加到 tempdata 以顯示彈出消息。
protected void AddPopupMessage(SeverityLevels severityLevel, string title, string message) { var newPopupMessage = new PopupMessage() { SeverityLevel = severityLevel, Title = title, Message = message }; _popupMessages.Add(newPopupMessage); TempData["PopupMessages"] = _popupMessages; }如果該操作返回一個視圖,則可以正常工作。如果該操作正在呼叫重定向操作,我會收到以下錯誤。
InvalidOperationException: The 'Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.TempDataSerializer' cannot serialize an object of type有什麼想法嗎 ?
TempDatausesSession,它本身使用IDistributedCache.IDistributedCache沒有接受對像或序列化對象的能力。因此,您需要自己執行此操作,即:TempData["PopupMessages"] = JsonConvert.SerializeObject(_popupMessages);然後,當然,在重定向之後,您需要將其反序列化回您需要的對象:
ViewData["PopupMessages"] = JsonConvert.DeserializeObject<List<PopupMessage>(TempData["PopupMessages"]);