书中提供一个区别回发和刷新的解决方案,学后受益匪浅。
仔细想了下它的原理,就是浏览器的刷新机制:每次请求的信息会存储,当刷新时直接用最近存储的请求做请求,不会再从页面去搜集信息。
为了验证,特做一个aspx页面验证,只包含一个后台按钮代码如下:
static int n = 0;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (Request["test"] != null)
{
Response.Write(Request["test"]);
}
ClientScript.RegisterHiddenField("test", (++n).ToString());
}
当点击按钮,正常回发,页面显示n在增加,当刷新时n不变。