我有一个使用 MVC 2 构建的站点。我的问题是 Response.End()在第一次访问会话时导致会话丢失。
测试用例 1:
启动应用程序。
转到主页/X。一个项目被添加到
session
并被Response.End()
调用。再次打开 Home/X 并检查
Session["X"]
(在分配行之前添加一个断点。)它返回null。再次执行将“X”分配给会话的其余操作。重新打开主页/X。这次
Session["X"]
返回正确的值。
测试用例 2:
保持 Web 应用程序运行。关闭浏览器并重新打开以打开新会话。访问主页/X。
结果:
Session["X"]
总是有一个值。
谁能向我解释为什么会发生这种情况以及如何解决?
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public void X()
{
Session["X"] = "X";
Response.End();
}
}