2

現在 Web ページを作成しており、サイトの現在の訪問者に関連する 1 つのオブジェクトを別のページに転送したいと考えています。私はセッションアイテムでこれを行うことにしました。しかし、問題があるようです。次のような 1 つのページで値を宣言します。

Session["CurrentAccount"] = new Account(tb_username.text, tb_password.text);

そして、次のような別のページでこのデータを取得したい:

Account currAccount = (Account)Session["CurrentAccount"];

これを行おうとすると、nullreferenceexception が発生します。Account クラスはシリアライズ可能としてマークされていません。また、両方のページが同じアプリケーションで実行されています。

編集:同じことを試みましたが、代わりに通常の文字列をセッションにバインドしましたが、これも機能しませんでした。

4

3 に答える 3

2

Serializable は、SQL セッションでのみカウントされます。これにより、セッションに入れるときに例外が発生します。

セッションを「新しいオブジェクト」に直接割り当てると、同じ問題が発生しました。最初にインスタンスを作成してから、そのインスタンスをセッションに割り当ててみてください!

于 2012-06-07T18:30:57.840 に答える
0

読み取り/書き込みセッションが有効になっていることを確認してください。

これを参照してください: http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.enablesessionstate.aspx

于 2012-06-07T18:29:04.047 に答える
-3

どうやら、まったく同じ問題でカスタムオブジェクトをセッションに保存できないようですが、アカウントを通常の文字列に置き換えるとうまくいきます。助けてくれてありがとう。

TL;DRセッションでは、標準オブジェクト以外のオブジェクトを保存できないようです。

于 2012-06-07T18:48:14.443 に答える