MVC 2を使用して構築されたサイトがあります。私の問題は、Response.End()により、セッションに最初にアクセスしたときにセッションが失われることです。
テストケース1:
アプリケーションを起動します。
Home/Xに移動します。アイテムが追加され
session
、Response.End()
呼び出されます。Home / Xを再度開き、チェックし
Session["X"]
ます(割り当て行の前にブレークポイントを追加します)。nullを返します。セッションに「X」を割り当てる残りのアクションを再度実行します。Home/Xを再度開きます。今回
Session["X"]
は正しい値を返します。
テストケース2:
Webアプリケーションを実行し続けます。ブラウザを閉じて再度開き、新しいセッションを開きます。Home/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();
}
}