がりらぼ

WindowsRuntimeの応援ブログ

Postデータを取得するには

Postデータ

複数のWebページ間でのデータのやりとりの方法の一つとして、HttpPostというものがあります。

PostはHttpRequestデータの中にデータを埋め込むことができ、Requestを受けとったWebページはPostデータを取り出してページに反映することができます。

 

Postデータを送信する

Postデータを送信するにはHTMLのformタグを使って行います。

formタグのaction属性に遷移したいページのアドレス、method属性にpostを指定します。

<form action="~/post.cshtml" method="post">

 

formタグ内には、postデータとして送信したいデータをユーザーから入力してもらう形式にします。

そのために、inputタグを用いて入力コントロールをつくります。

type属性には入力の種類、name属性にはpostデータのキー、valueにはpostデータの値を設定します。

<input type="text" name="name" />

 

radiobuttonの場合、選択させたいボタンを同じnameにすると対応するvalue値が送信されます。

男<input type="radio" name="sex" value="man" />
女<input type="radio" name="sex" value="woman" />

 

全体のコードはこのようになります。

<!DOCTYPE html>
<html>
    <head>
        <title>テストページ</title>
    </head>

    <body>
       <form action="~/post.cshtml" method="post">
           <p>名前</p>
           <input type="text" name="name" />
           <p>性別</p>
           男<input type="radio" name="sex" value="man" />
           女<input type="radio" name="sex" value="woman" />
           <p>同意しますか?</p>
           <input type="checkbox" name="checkAgree" />
           <input type="submit" />
       </form>
    </body>
</html>

このHTMLはこのようになります。ユーザーからの入力がこの用になった場合

19

 

Postされるデータのキーセットはこのようになります。

20

 

Postデータを受け取る

まず、Postデータを受け取るページをつくります。

ソリューションエクスプローラーからプロジェクト名を右クリック→追加→新しい項目

を押します。

21

 

 

ダイアログが表示されるのでpost.cshtmlという名前でページを追加します。

22

 

 

Razor構文内ではIsPostプロパティが存在し、これはHttpPostによるリクエストならTrueになります。

そして、Request.Formプロパティには、PostデータがNameValueCollectionとして入っています。

つまり。Request.Formのコレクションに先ほどPostしたデータのnameをキーとしてvalueを調べると値がかえってきます。

@{
    string name = "";
    string sex = "";
    bool isAgree=false;
    if (IsPost)
    {
        name=Request.Form["name"];
        sex = Request.Form["sex"];
        if (Request.Form["checkAgree"] == "on")
        {
            isAgree = true;
        }
        else
        {
            isAgree = false;
        }
        
    }
}

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
       <p>@("名前 "+name)</p>
       <p>@("性別 " + sex)</p>
       <p>@("同意 " + isAgree)</p>
    </body>
</html>

23

 

 

Postデータを取得するには | garicchi.com