- PR -

System.NullReferenceExceptionが出てしまいます

1
投稿者投稿内容
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 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の項目に値をセットするということはできないのでしょうか?
それとも、書き方に問題があるのでしょうか?
何かお気づきの点がありましたら、ご教授ください。
よろしくお願いします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 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/07/28
投稿数: 36
投稿日時: 2005-10-12 09:32
burton999さん、返信ありがとうございました。
やはり、このような処理はできないのですね。
他の方法を試みてみます。
大変ありがとうございました。

Webアプリケーション開発技術大全もとても役立ちそうですので、時間がある時に読んでみます。
1

スキルアップ/キャリアアップ(JOB@IT)