是的,你没有看错,确实是Hidden Field的值没有PostBack到后台,我在百度和google上也没有搜索到相关内容.
查找n遍无果,还以为是因为项目类型(类库类型)的关系.直到有天偶然想到可能是脚本事件onbeforeunload的问题.经测试,确实原因出在这.
【总结】
NameValueCollection在onbeforeunload事件执行前就已保存好,所以在onbeforeunload事件中再更改input的值已不会起作用,反映到NameValueCollection中.
但是:如果使用到return onbeforeunload事件,则改变的值又会反映到NameValueCollection中,PostBack到后台.
【测试代码】
前台代码:
后台代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(hidAX.Value);
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(hidAX.Value);
}
}