キモは System.Web.UI.Page.Request.Form プロパティ で値を取得するという点と、送信元の文字コードをUTF-8で統一するという点です。
それ以外の文字コードから POST するときは、変換する必要があります。
作成 2011.04.23
更新 2011.04.23
更新 2011.04.23
ASP.NET で POST メソッドを受け取る
コード
送信元 postform.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Post Test</title> </head> <body> <form name="f1" method="POST" action="postform.aspx"> <input type="checkbox" name="c1" value="チェック1" checked>チェック<br> <input type="radio" name="r1" value="ラジオ1" checked>ラジオ1 <input type="radio" name="r1" value="ラジオ2">ラジオ2<br> <input type="text" name="t1" value="テキスト1" size="20"> <input type="submit" value="Submit"> </form> </body> </html>送信先 postform.aspx
<%@ PAGE LANGUAGE="C#" %> <html> <head> <title>Post Test</title> <script runat="server"> void Page_Load(object sender, EventArgs e) { int loop1; NameValueCollection coll; //Load Form variables into NameValueCollection variable. coll = Request.Form; // Get names of all forms into a string array. String[] arr1 = coll.AllKeys; String str_result = ""; for (loop1 = 0; loop1 < arr1.Length; loop1++) { str_result += arr1[loop1] + ":" + coll.Get(arr1[loop1]) + "<br>"; } form_result.Text = str_result; } </script> </head> <body> <form runat="server"> Form で送付されてきた一覧<br> <asp:Label id="form_result" Text="" runat="server" /> </form> </body> </html>
実行結果
Form で送付されてきた一覧
c1:チェック1
r1:ラジオ1
t1:テキスト1