私は自分自身を Web プログラマーとは考えていませんが、かなりの量の Web プログラミングを行ってきたので、以下のコードの何が問題なのかを尋ねるのはほとんど恥ずかしいことです。ASP.NET には、欠けているに違いない基本的なものがあります。
source.aspx と destination.aspx の 2 つのページがあります。
source.aspx - html:
<body>
<form id="form1" action="destination.aspx" method="post" runat="server">
<input id="Text1" type="text" />
<input id="Text2" type="text" />
<input id="Checkbox1" type="checkbox" />
<input id="Submit1" type="submit" value="submit" />
</form>
</body>
destination.aspx - コード ビハインド:
protected void Page_Load(object sender, EventArgs e)
{
// Below variable gets assigned null.
string text1 = Request.Form["Text1"];
}
source.aspx フォームを送信すると、destination.aspx フォームに到達すると、FORM 変数に情報がありません。フォーム 'runat="server" ' により、ASP.NET ページ パイプラインにたどり着くことが保証され、実際にこのコードをステップ実行できると考えました。viewstate 以外に POST されたフォーム変数はなく、PARAMs コレクションには、装飾されたコントロール名に対応するものでさえも、コントロール データに対応するものはありません。問題は、少なくとも目的のページで、POST された変数が「消える」原因は何ですか?
これを機能させるための代替手段を探しているわけではありません (つまり、コントロール サーバー コントロールを runat="server" で作成するなど)。問題を解決できます。私が判断しようとしているのは、「私のコントロールが宛先ページで受信できないように見えるのは、ASP.NET の何ですか」ということです。ありがとう - 私は HTTP をかなりよく理解していると思っていましたが、私が見ていない ASP.NET のおかげでちょっとした手品があるようです。