- - PR -
Response.Writeの仕方について
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-14 13:37
ASP.NETでHTMLファイルにASPのようにプログラムの記述を
おこなっているのですが、下記の記述を行った場合、 <% Response.Write(a); %>の箇所で 「コンパイラ エラー メッセージ: CS1002: ; が必要です。」 といわれます。これはローカル変数であるaを使おうとしている からでしょうか? ##ここから void Page_Load(object sender, System.EventArgs e){ aData() } void aData(){ string a = "Hello"; } </head> <body> <% Response.Write(a); %> </body> </html> よろしくお願いいたします。 | ||||||||||||||||
|
投稿日時: 2005-09-14 14:00
変数のスコープの範囲とか考えてみれば、上記コードでは難しいのではないでしょうか。
コードビハインドを使わないのであれば、Page_Loadの前にグローバル変数として変数を定義するなど、やり方はいろいろあるかと思います。 | ||||||||||||||||
|
投稿日時: 2005-09-14 14:26
私自身はASP.NETはやったこと無いのですが、 見ていて気になった点を上げてみます。
で 「aData()」に「;」は必要ないんでしょうか?
ということは「変数a」はこのaData内部だけで有効であり
で出力しようとしている「変数a」は別の場所で定義されている変数なんでしょうか? | ||||||||||||||||
|
投稿日時: 2005-09-14 15:16
ご返事ありがとうございます。
aData()の後に;を記述しておりませんでした。 失礼しました。また、aですがaData()で宣言している だけです。 コードビハインドで記述する場合はPage_Load などは使わず記述するものなのでしょうか? | ||||||||||||||||
|
投稿日時: 2005-09-14 15:21
ためしてみました。
> コンパイラ エラー メッセージ: CS1002: ; が必要です。 これは aData() の後に";"がないためにでます。 というか、その行がおかしいとちゃんと表示されますが。 #リモートからテストしてるのかな? で、その部分をなおす(";"を追加する)と、今度は 「コンパイラ エラー メッセージ: CS0103: 名前 'a' は クラスまたは名前空間 'ASP.test_aspx' に存在しません。」 というエラーがでるようになります。 これがローカル変数のaを他のところで使おうとするからでるメッセージですね。 ちゃんと動くのはこんな感じのコードですね。 <%@ Page language="c#" %> <script runat="server"> string a = null; public void Page_Load(Object sender, EventArgs e) { aData(); } void aData() { a = "Hello"; } </script> <html> <body> <% Response.Write(a); %> </body> </html> ちなみに、この場合のaはけして「グローバル変数」ではないのでお間違いなく。 aspxは1つのクラスに自動的に変換されますから、aはそのクラスのフィールドということになります。 | ||||||||||||||||
|
投稿日時: 2005-09-14 18:47
どっとねっとふぁん様
ありがとうございます。 解決いたしました。 試していただけるとは思いませんでした。 うれしかったです。 |
1