
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どう増強すべきか
-
エクセル VBAで複数セル選択時...
-
ExcelVBAのコントロールの種類...
-
複数のコマンドボタン(VBAで)...
-
VBA シートのボタン名を変更し...
-
パソコンへの「Dropbox...
-
AccessVBAで「dim dbs as datab...
-
Debug.exe実行時にWinMainCRTSt...
-
【マクロ】エラー【#DIV/0!】が...
-
フォーム1が開いているのならMs...
-
VB.NETでラベルの大きさってど...
-
クリックイベントなのに、2回ク...
-
[VB.net] ボタン(Flat)のEnable...
-
Do While中のVBAアプリケーショ...
-
共通モジュールでDBへの接続と...
-
worksheetFunctionクラスのVloo...
-
Amazon api について。JANコー...
-
アイコンとボタンの違い
-
全てのオブジェクトのプロパテ...
-
Pictureコントロールの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
どう増強すべきか
-
Excel VBA セルの名前があるか...
-
vbaのエラー対応(実行時エラー...
-
IF文に時間(何時から何時ま...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
マクロで、次のコードへ行く前...
-
どうやってもFor文を抜けてしま...
-
【Vb.net】プリンタジョブの取得
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
シェルスクリプトでファイル内...
-
【VBA】エラー処理で別プロシー...
-
cobolのコントロールブレイク
-
Functionで戻り値を複数返す方法
-
エクセル VBAで複数セル選択時...
-
【C#】Page_Loadさせない方法に...
-
ExcelのVBAで、選択したファイ...
おすすめ情報