我们在 ASP.NET MVC 网站中使用 TempData 来传输成功消息,但是我们发现设置
TempData["message"]
第一次无法按预期工作。
我们发现 ASP.NET_SessionId cookie 是在第一次设置 TempData 之后设置的,而不是作为下一个响应的一部分提供
TempData["message"]
。
TempData 的所有后续使用均按预期工作。
我们可以做些什么来快速填充此 ASP.NET_SessionId cookie,以便 TempData 始终有效吗?
您可以在请求开始时显式访问会话状态,例如使用basecontroller,这可能会导致初始化会话状态并在访问tempData之前设置sessionId cookie
public class BaseController: Controller
{
var session = HttpContext.Session;
}
然后继承这个控制器
public class TodoController:BaseController
{
public IActionResult DoSomething()
{
Tempdata["message"]="Welcome Todo";
return view();
}
}