ASP.NETのセッションオブジェクト

1670 ワード

ViewStateオブジェクトでは異なるページデータ交換ができず、あるページで操作したデータを別のページにアクセスする必要がある場合があります.
ASP.NETで異なるページ間で情報を共有する方法
Session(セッション)オブジェクト、ViewStateオブジェクトと同様に「キー---値」対アクセスデータ
public partial class   1_Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            List cart = new List();
            Session["Cart"] = cart;
        }
    }

    protected void btnAddToCart_Click(object sender, EventArgs e)
    {
        foreach(Control item in form1.Controls)
        {
            if(item is CheckBox)
            {
                CheckBox ckd = (CheckBox)item;
                if(ckd.Checked)
                {
                    ((List)Session["Cart"]).Add(ckd.Text);
                }

            }
        }
        this.btnAddToCart.Text = "    ";
    }

    protected void btnShowCart_Click(object sender, EventArgs e)
    {
        Response.Redirect("ShoppingCart.aspx");
    }
}
public partial class   1_ShoppingCart : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List car = (List)Session["Cart"];
        string info = string.Empty;
        foreach (string item in car)
        {
            info += item + " ";
        }
        Response.Write("       :" + info + "

"); } }

WebサーバはSessionIdによって異なるユーザーを区別し、長い文字列である.
SessionIdは、ユーザの最初のアクセス時にWebサーバによって生成され、ユーザブラウザによって保存される
ユーザが操作するたびに,ブラウザはサーバに要求する際に独自のセッションIDを持つ.