在ASP.NET Core 5 MVC应用程序中,可以通过使用TempData来解决重定向后丢失会话的问题。TempData是一种在重定向期间保持数据的机制。
下面是一个示例代码,演示了如何在ASP.NET Core 5 MVC应用程序中使用TempData:
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
public IActionResult Index()
{
// 存储数据到TempData
TempData["message"] = "Hello, TempData!";
return RedirectToAction("About"); // 重定向到About方法
}
public IActionResult About()
{
// 从TempData中获取数据
var message = TempData["message"];
// 在View中使用数据
ViewBag.Message = message;
return View();
}
}
About
@ViewBag.Message
在上面的代码中,当访问Index方法时,会将数据存储到TempData中,并且重定向到About方法。在About方法中,我们从TempData中获取数据,并将其传递给ViewBag,以在视图中使用。
这样,在重定向后,会话数据将保留,并且可以在重定向后的页面中使用。
注意:TempData只会在第一次访问时获取数据,之后就会自动清除,确保数据只被使用一次。如果需要在多个请求之间保留数据,可以考虑使用其他机制,如Session。