10

テキストボックスに入力されたものはすべてそのセッションに保存される新しいセッションを作成したいと考えています。次に、別の aspx ページで、そのセッションをラベルに表示したいと思います。

これを開始する方法と、すべてをどこに置くかがわかりません。

私は必要になることを知っています:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["newSession"] != null)
    {
        //Something here
    }
}

しかし、私はまだすべてをどこに置くべきかわかりません。

4

1 に答える 1

16

newSessionSession変数の名前としては不適切です。ただし、既に行ったようにインデクサーを使用する必要があります。読みやすさを改善したい場合は、代わりに静的であってもよいプロパティを使用できます。次に、インスタンスなしで 2 ページ目から 1 ページ目でアクセスできます。

ページ 1 (または好きな場所):

public static string TestSessionValue 
{ 
    get 
    {
        object value = HttpContext.Current.Session["TestSessionValue"];
        return value == null ? "" : (string)value;
    }
    set 
    {
        HttpContext.Current.Session["TestSessionValue"] = value;
    }
}

TextChangedこれで、ハンドラーの最初のページなど、どこからでも取得/設定できるようになりました。

protected void TextBox1_TextChanged(Object sender, EventArgs e)
{
    TestSessionValue = ((TextBox)sender).Text;
}

2ページ目でそれを読んでください:

protected void Page_Load(Object sender, EventArgs e)
{
    this.Label1.Text = Page1.TestSessionValue; // assuming first page is Page1
}
于 2013-05-06T21:31:14.133 に答える