0

セッションからnullに1つの変数を設定したい

Session["my_variable"] = null;

このようにOnUnloadで試してみました

protected override void OnUnload(EventArgs e)
    {
        base.OnUnload(e);

       Session["my_variable"] = null;
    }

しかし、それは正しく機能しません、それはユーザーがページにいる間に変数を設定します、しかし私はそれをnullに設定したいですwhet is Leaves page

4

2 に答える 2

2

これはサーバー側のイベントであるため、ページがクライアントに提供されるとすぐに関数/イベントが発生します。Viewstateを使用することもできますが、クライアント側のスクリプトが役立つ場合でも、ナビゲーションはサーバーにイベントを送信しないため、実装できません。

この機能は、javaスクリプトのon-unloadイベントによって実装できます。特定のセッション値を削除またはnullに設定するには、サーバーにリクエストを送信する必要があります(セッションはKey-Valueオブジェクトであるため)。
あなたの質問はAspフォーラムで最もよく説明されています

ただし、注意してください。このイベントは、一部のブラウザによるナビゲーションでのみ発生する可能性があります。必要なものを実装するには、コード作業が必要になる場合があります。

于 2012-07-26T10:03:36.340 に答える
1

セッション変数の代わりにViewStateを使用しないのはなぜですか。

ページを離れると、viewstate変数は自動的に削除されます

これがその使い方の例です

protected DataSet MyDataSet
{
    get
    {
        if(ViewState["MyDataSet"] == null)
        {
            return null;
        }
        else
        {
            return (DataSet)ViewState["MyDataSet"];
        }
    }
    set
    {
        ViewState["MyDataSet"] = value;
    }
}
于 2012-07-26T09:34:35.690 に答える