WEB開発が初心者でいろいろ悩んでいます。
・ASP.net2.0
・C#
現在、ログインページとメインページがあります。
今後、ページが増えていくので、
メインページ内で処理していたことを全ページで使用できるように
APP_code配下へクラスを作成し、処理を移植しました。
そこで、メインページのaspx.csでは問題なく出来ていたが、APP_code配下のcsでは出来なくなってしました。
[内容]
object ses = Session["hoge"]; ←この処理が出来なくなってしまったので、下記に変更
object ses = System.Web.HttpContext.Current.Session["hoge"];
⇒結果は「NullReferenceExceptionはユーザーコードによってハンドルされませんでした。」
となってしまいます。
System.Web.HttpContext.Current.Session["hoge"]の結果はNullなのが問題だとは思うのですが、
元のaspx.csで実装されていた時はNullであっても特に問題はありませんでした。
また、Response.Redirect("hoge.aspx")についても
System.Web.HttpContext.Current.Response.Redirect("hoge.aspx")
と修正したが、hoge.aspxへリダイレクトしません。
対処方法を教えて頂きたく思います。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
私の環境では、
object ses = System.Web.HttpContext.Current.Session["hoge"];
のコードをApp_Code配下のクラスに記述しても例外エラーなく
処理できましたが、一般的には、現在動いているHttpContextや
HttpSessionStateをApp_Codeに引き渡すやり方が一般的なので
下記のようにしたらどうなりますか?
もちろん、そのApp_Codeに定義したクラス・コード類は、
aspxからアクセスして使用させてることが前提になりますが・・・
■App_Codeの定義
public class Class1
{
/// <summary>
/// ASPXより処理中スレッドのHttpContextをもらってSession処理
/// </summary>
/// <param name="context"></param>
public static void SaveSession(System.Web.HttpContext context)
{
object ses = context.Session["hoge"];
}
}
■App_Codeにあるコードを呼び出すaspxの例
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Class1.SaveSession(this.Context); // staticメソッドにしてます
}
}
これでやって頂ければ、処理中のContext(スレッド)を
引き渡して処理することになるので恐らく、NullReferenceException例外は発生しないんじゃないかと思います。
ご確認下さい。
参考URL:http://www.microsoft.com/japan/msdn/community/gd …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どう増強すべきか
-
IF文に時間(何時から何時ま...
-
VBA フォルダ内の全てブックの...
-
Word VBA。各マクロの間に待ち...
-
ドイツ語和訳(工業用)について
-
マクロで、次のコードへ行く前...
-
掲示板に長文の書きこみができ...
-
ExcelのVBAで、選択したファイ...
-
時間間隔の計算方法
-
特定の名前のオートシェイプの...
-
ドリブン??
-
MS Access と VB6
-
Excel VBA セルの名前があるか...
-
フォルダのアクセス権確認について
-
生ゴミ処理機プラス換気扇の音は…
-
C言語のGOTO文(組み込み系)
-
VB6で定時刻処理
-
VBA Select Caseについて
-
VBAでのマクロ実行中のオーバー...
-
東京都指定の空き缶専用ゴミ袋...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
vbaのエラー対応(実行時エラー...
-
iPhoneのニューラルエンジンっ...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
Excel VBA セルの名前があるか...
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
シグナル 6(SIGABRT)とは?
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
シェルスクリプトでファイル内...
-
VBA 複数の行を高速で削除する...
-
【Vb.net】プリンタジョブの取得
おすすめ情報