HTMLフォームからのサブミット(投稿・ポスト)をWebフォームで受け取る - ASP.NET

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を愛用
最終更新日: 2024-01-06
作成日: 2015-02-19
iPentec all rights reserverd.