- - PR -
System.NullReferenceExceptionが出てしまいます
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-11 18:12
こんばんわ。
C#.NETでWEBアプリの開発をしております。 初歩的な質問となってしまうかもしれませんが、分からなくて困っているので、よろしくお願いいたします。 画面A、画面Bがあります。 画面Aにはテキストボックス1とボタン1があり、ボタン1を押すと、JavaScriptで画面Bをオープンします。 画面Bにはテキストボックスとボタン2があり、テキストボックスに何か文字を入力して、ボタン2を押すと、画面Bは閉じ、画面Aのテキストボックス1に画面Bで入力した文字が表示されます。 というような処理をしたいのですが、具体的に以下のような記述すると、 ★画面A.cs public void SetItem() { textbox1.text = Session["aaa"]; } ----------------------------------------------------------------------- ★画面B.cs 画面A A = new 画面A(); //画面Aの関数を呼ぶ private void btn2_Click(object sender, System.EventArgs e) { Session["aaa"] = textbox2.text; A.SetItem(); } System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出ます。 このように画面Bから画面Aの関数を呼び出し、その関数内で画面Aの項目に値をセットするということはできないのでしょうか? それとも、書き方に問題があるのでしょうか? 何かお気づきの点がありましたら、ご教授ください。 よろしくお願いします。 |
|
投稿日時: 2005-10-11 18:19
Webアプリケーションではリクエスト毎にフォームのインスタンスが生成されて破棄されます。
画面Aと画面Bは別リクエストとして処理されるので、今回のような処理はできません。 まず、ASP.NETの基本的な概念を学ばれることをおすすめします。 ちなみに今回のケースだと、JavaScriptなどのクライアントスクリプトで処理したほうがいいでしょう。 ちなみにこの辺を一度読まれたほうがいいかと思います。 http://www.atmarkit.co.jp/fdotnet/entwebapp/index/index.html [ メッセージ編集済み 編集者: burton999 編集日時 2005-10-11 18:26 ] |
|
投稿日時: 2005-10-12 09:32
burton999さん、返信ありがとうございました。
やはり、このような処理はできないのですね。 他の方法を試みてみます。 大変ありがとうございました。 Webアプリケーション開発技術大全もとても役立ちそうですので、時間がある時に読んでみます。 |
1