2

MVC 2を使用して構築されたサイトがあります。私の問題は、Response.End()により、セッションに最初にアクセスしたときにセッションが失われることです。

テストケース1:

  1. アプリケーションを起動します。

  2. Home/Xに移動します。アイテムが追加されsessionResponse.End()呼び出されます。

  3. Home / Xを再度開き、チェックしSession["X"]ます(割り当て行の前にブレークポイントを追加します)。nullを返します。セッションに「X」を割り当てる残りのアクションを再度実行します。

  4. Home/Xを再度開きます。今回Session["X"]は正しい値を返します。

テストケース2:

  1. Webアプリケーションを実行し続けます。ブラウザを閉じて再度開き、新しいセッションを開きます。Home/Xにアクセスします。

  2. 結果: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();
    }
}
4

1 に答える 1

1

追加する

    public void Session_OnStart()
    {
    }

Global.asaxは、問題の解決に役立ちます。

于 2012-08-31T11:18:32.843 に答える