|
分類:[ASP.NET (C#)]
お世話になっております。
大変初歩的な質問で申し訳ありません。 現在作成しているaspxページで、リロード処理を行うと、コンテキストアイテムのところで、NullReferenceExceptionが発生します。 この現象を回避する方法をご教示頂けますでしょうか。
大まかではありますが、以下に流れを掲載します。
1:ログインページでログインを行い、ユーザ名を取得し、任意の変数にセットする displayName = "xxxxxx";←実際はソースで、ログインデータ格納ファイルから取得しています。
2:コンテキストアイテムに1で取得した名前を代入します。 Context.Items["Name"] = displayName;
3:ページの遷移を行います。 Context.Server.Transfer("aaa.aspx");
4:遷移した先で、ポストバックでない場合、2のユーザ名を取得します(この段階ではラベル等に正常に表示されます) if (!IsPostBack) { //名前のパラメータを引き受ける string logInName = Context.Items["Name"].ToString() }
5:任意の処理を行い、protected void Page_Loadが走っても、ラベルには表示されています。
6:aaa.aspxのソースに以下を挿入しました。 <meta http-equiv="refresh" content="20;url=aaa.aspx"/>
7: 20秒後にページがリロードされます。
8:リロード後のprotected void Page_Loadイベントの、 string logInName = Context.Items["Name"].ToString(); の部分にてNullReferenceException オブジェクト参照がインスタンスに設定されていません。 と表示されます。
自動更新を入れた背景には、そのページで行われている処理を特定周期ごとに監視し、問題が発生していないか確認するためです。
以上、よろしくお願い致します。
|