キモは 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