まず、私の質問のタイトルが不明確であることをお詫びします。タイトルで自分の問題を簡潔に説明する方法がわかりませんでした。
.aspx に隠しフィールドがあります
<input type="hidden" name="hid1" value="0" />
ページ読み込みイベント中にこのフィールドの値を設定したいのですが、それがポストバックでない場合。
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
// This doesn't work!
Request.Form["hid1"] = "1";
}
if (Page.IsPostBack) {
// This DOES work!
Request.Form["hid1"] = "1";
}
}
問題は、ページ読み込みイベントがポストバックでない場合 (つまり、ページが最初にヒットしたとき) に、Request の Form 配列に隠しフィールドが含まれていないことです。ページへの後続のヒット (つまり、ポストバック) は、非表示フィールドを含む Form 配列になります。
ページのライフサイクルに関係していると確信していますが、本当に知っておく必要があるのは、ページの読み込みイベント中およびポストバックでないときに隠しフィールドを設定する方法です。
編集: 私は本当に、runat="server" 属性を組み込みたくありません!