0

ASP.NET を使用してカート アプリケーションを設計しています。ユーザーが買い物を終えると、支払い可能な合計金額が表示されます。それから彼はブラウザを閉じます。次回ブラウザを開いたとき、アイテムの数量は変更されず、アイテムを選択すると古い数量が表示されます。

おそらく、ASP.NET 開発サーバーが実行中の状態で、通知領域に表示されているためです。

私が使用しているチェックアウトボタンのコードは次のとおりです。

    protected void btnCheckout_Click(object sender, EventArgs e)
    {
        List<CD> CdCheckOutList = new List<CD>();
            CdCheckOutList = (List<CD>)Session["cart"];
            double totalPrice = 0.0;

            foreach (var cd in CdCheckOutList)
            {
                totalPrice += cd.Amount;
            }
            lblTotal.Text = "Total Price = "+totalPrice.ToString();

    }

問題に取り組むのを手伝ってください。

4

2 に答える 2

0

onunload イベントからの呼び出しは、問題を解決します。以下のコードを見てください。

コードビハインド:

public static void ClearSession()
{ 
    Session["cart"] = null;
}

サーバー側呼び出しへの Jquery および Ajax 呼び出し:

$(window).unload(function() {

 $.ajax({
    type: "POST",
    url: "PageName.aspx/ClearSession",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
         // Do something interesting here.
    }
});
于 2013-07-21T12:31:09.533 に答える