我正在使用TempData在查看页面中传递成功或失败消息。 当我第一次部署应用程序时,它工作正常,但是当服务器重新启动/重新引导时,我在TempData中遇到了会话问题,就像下面的截图一样。在asp.net核心中找不到TempData密钥
由于
我正在使用TempData在查看页面中传递成功或失败消息。 当我第一次部署应用程序时,它工作正常,但是当服务器重新启动/重新引导时,我在TempData中遇到了会话问题,就像下面的截图一样。在asp.net核心中找不到TempData密钥
由于
TempData的下一个请求完成后废弃。这对于一次性消息很有用,比如表单验证错误。这里需要注意的重要一点是,这适用于会话中的下一个请求,以便请求可能发生在不同的浏览器窗口或选项卡中。
TempData
通常用于paas控制器之间的值。
您应该使用ViewBag
或ViewData
将值从控制器传递到视图。
像
ViewBag.YourKey = "Value"
上CSHTML
@if(ViewBag.YourKey!=null)
{
}
或ViewData的
ViewData["YourKey"] = "Value"
上CSHTML
@if(ViewData["YourKey"] !=null)
{
}
谢谢
其实,没有。 TempData通常用于传递一次性使用的消息信息,如“Operation Successful”或类似消息。它可以跨控制器,也可以从控制器中查看。无论如何,告诉他们使用不同的机制并不能解决问题。 –
更新了答案 –
仍然没有解决问题。用一个不存在的键调用TempData不应该抛出这个异常,它应该返回null。 –
你在你的ConfigureServices中使用'services.AddDataProtection'吗?也许这是你的问题https://github.com/aspnet/DataProtection/issues/184 –