HTMLフォームからのサブミット(投稿・ポスト)をWebフォームで受け取る
HTMLフォームからの投稿を受け取るWebフォームの実装コードを紹介します。
概要
HTMLフォームからの投稿を受け取る場合は、Request.Formプロパティを用います。
なお、ポスト先をジェネリックハンドラにする場合は
こちらの記事を参照してください。
プログラム
プロジェクトの作成
ASP.NETのプロジェクトを作成し、ASP.NETの空プロジェクトを作成します。
UI
下図のUIを作成します。
UIのaspxファイルのコードは以下です。
PostDest.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PostDest.aspx.cs"
Inherits="HtmlForm.PostDest" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
</div>
</form>
</body>
</html>
Post元のHTMLファイルも作成します。
Form.html
<!DOCTYPE html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form method="post" action="GetForm.ashx">
<div>Value-01<input name="value01" type="text" /></div>
<div>Value-02<input name="value02" type="text" /></div>
<input type="submit" value="POST" />
</form>
</body>
</html>
コード
Post先のWebフォームページに下記のコードを記述します。
GetForm.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace HtmlForm
{
public partial class PostDest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string valstr1 = Request.Form["value01"];
string valstr2 = Request.Form["value02"];
Label1.Text = valstr1;
Label2.Text = valstr2;
}
}
}
解説
string valstr1 = Request.Form["value01"];
string valstr2 = Request.Form["value02"];
上記コードにより、ポストされたデータを取得します。ポスト元のID="value01"のテキストボックスに入力された内容がRequest.Form["value01"]で取得できます。
Label1.Text = valstr1;
Label2.Text = valstr2;
取得したポストデータをWebフォームのラベルに表示します。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
テキストボックスに文字を入力します。入力後[POST]ボタンをクリックします。
Post先の"PostDest.aspx"にページ遷移します。テキストボックスに入力した文字列が表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用