ユーザーの入力を受け付けるシンプルな方法

それではユーザーの入力を受け付ける、非常にシンプルな方法を試しましょう! 少しずつ動的な 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 を使うよう指定する」 などを試してみてください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 ASP.NET 入門