ユーザーの入力を受け付けるシンプルな方法
それではユーザーの入力を受け付ける、非常にシンプルな方法を試しましょう! 少しずつ動的な Web アプリケーションにしていきます。まず、出来上がりのイメージはこちらです。
ユーザー名を入力して、ボタンを押すと...
ユーザーが入力した名前が入った文字が出力されます。
このように、ユーザーの入力を受け取るにはどうしたらよいでしょうか。
まず、テキストボックスとボタンからなる入力フォームを用意しましょう。HTML でこれを書くと次のようになります。
<%@ Page Language="C#" %> <html> <body> <form action="hello1.aspx" method="POST"> <p> 名前を入力してください: <input type="text" name="myname"> <input type="submit" value="OK"> </p> </form> </body> </html>
上記のコードに、「POST されたデータがあったらそれの先に "こんにちは" を、後ろに "さん!" を付けて表示する」 というコードを追加します。
追加した部分は、下記の赤で囲んだ部分です。
<%@ Page Language="C#" %> <html> <body> <form action="hello1.aspx" method="POST"> <p> 名前を入力してください: <input type="text" name="myname"> <input type="submit" value="OK"> </p><% if(!String.IsNullOrEmpty(Request["myname"])){ Response.Write ("<p>こんにちは, " + Request["myname"] + "さん!</p>"); } %></form> </body> </html>
追加したコードをみていきましょう。
if(!String.IsNullOrEmpty(Request["myname"])){
ユーザーからの GET データ、あるいは POST データは Request["キー名"] で取得できます。 今回の場合、 input 要素には myname という名前を振っていたので、POST データは Request["myname"] で取得できます。
従って、String.IsNullOrEmpty メソッドを用いて、それが存在しないか、あるいは空文字である場合をチェックしています。
Response.Write ("<p>こんにちは, " + Request["myname"] + "さん!</p>");
String.IsNullOrEmpty メソッドが false を返した場合、何らかの文字が入っていますから、その前後に文字を付け足して、 Response.Write メソッドでクライアントに送信します。
これで冒頭のプログラムが完成しました。簡単ですね。
文字化けする場合などは、「エンコーディングに UTF-8 を使うよう指定する」 などを試してみてください。