【发布时间】:2009-09-24 16:24:57
【问题描述】:
首先,对于我的问题标题不明确,我深表歉意。我不知道如何在标题中简洁地描述我的问题。
我的 .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";
}
}
问题是请求在页面加载事件期间不包含表单数组中的隐藏字段,而不是回发(即 - 第一次点击页面)。对页面的后续点击(即回发)会导致 Form 数组包含隐藏字段。
我确定它与页面的生命周期有关,但我真正需要知道的是在页面加载事件期间以及当它不是回发时如何设置隐藏字段?
编辑: 我真的,真的不想加入 runat="server" 属性!
【问题讨论】:
-
鲍勃·考夫曼说得对;需要注意的是,当页面没有回发时,没有随请求一起发送的表单数据,所以
Request.Form没有填充键"hid1"。 -
对,我也是这么认为的。
标签: asp.net request page-lifecycle hidden-field