gpt4 book ai didi

asp.net-core-2.2 - Asp.Net核心Tempdata和redirecttoaction不起作用

转载 作者:行者123 更新时间:2023-12-03 14:34:56 33 4
gpt4 key购买 nike

我的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;
}

如果该操作返回一个 View ,则可以正常工作。如果该操作正在调用redirectotoaction,则会出现以下错误。
InvalidOperationException: The 'Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.TempDataSerializer' cannot serialize an object of type

有什么想法吗 ?

最佳答案

TempData使用Session,后者本身使用IDistributedCacheIDistributedCache不具有接受对象或序列化对象的功能。结果,您需要自己执行此操作,即:

TempData["PopupMessages"] = JsonConvert.SerializeObject(_popupMessages);

然后,当然,在重定向之后,您需要将其反序列化为所需的对象:
ViewData["PopupMessages"] = JsonConvert.DeserializeObject<List<PopupMessage>>(TempData["PopupMessages"]);

关于asp.net-core-2.2 - Asp.Net核心Tempdata和redirecttoaction不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56528508/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com