【发布时间】:2010-11-10 08:30:46
【问题描述】:
我有一个非常广泛地使用 AJAX 的网络表单页面。上面有许多链接可以将用户带到不同的页面。如果用户使用浏览器的后退按钮返回页面,我想保持页面所处的状态。
我的做法是在每次用户与页面交互时将页面的状态存储在会话中。当他们返回页面时,如果会话中存在状态,则将其加载并显示给用户。
我有这种“某种”工作。页面保存正确,可以正确加载,可惜需要刷新页面(F5)才能加载,否则会回退到之前的状态。
知道为什么页面没有刷新就不能正确呈现吗?我该如何解决这个问题?
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (!Page.IsPostBack)
{
DataBindDropDowns();
if (HasQueryString())
{
SetOptionsFromQueryString();
SavePageToSession();
Response.Redirect("Default.aspx");
}
else
{
RestoreFromSession();
DisplayOptions();
}
}
}
【问题讨论】:
-
当您按下浏览器返回按钮时,服务器端页面 OnLoad 是否会触发?还是浏览器在没有从服务器重新请求页面的情况下渲染页面?
-
好点! OnLoad 事件未触发...