title: ASP.NET UpdatePanel: Make browser "back" button return to *last* version of the page
body: <p>I have page A and page B. You can do the following things in page A:</p>
  
  <ul>
  <li>Do stuff on page A (e.g., choose an item in a list box), which causes an UpdatePanel in page A to be redrawn with additional information.</li>
  <li>Move on to page B. This is done with a Button and <code>Response.Redirect</code>.</li>
  </ul>
  
  <p>Now the problem is as follows:</p>
  
  <ol>
  <li>The user does stuff on page A. Page A is now different from its initial state.</li>
  <li>The user moves to page B.</li>
  <li>The user hits the back button of the browser.</li>
  </ol>
  
  <p>What happens: Page A <em>in its initial state</em>  is shown.<br />
  What I would like to happen: Page A <em>in its final state</em> is shown (i.e., with the "correct" item selected in the list box).</p>
  
  <p><strong>I know about <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.addhistorypoint%28v=vs.90%29.aspx">ScriptManager.AddHistoryPoint</a>!</strong> As far as I can see, it does not solve my problem:</p>
  
  <ul>
  <li><p>I could call <code>AddHistoryPoint</code> <em>every time</em> something is done on page A. This is bad, because it litters the browser history with lots of entries. (A new entry <em>every time</em> a different list box item is selected.) But that's exactly what I want to avoid by using an UpdatePanel! Of course, if there were a <code>ReplaceLastHistoryPoint</code> method, that would be perfect, but I did not find one...</p></li>
  <li><p>I tried to call <code>AddHistoryPoint</code> right before <code>Response.Redirect</code>, to save only the <em>last</em> state of page A, but, alas, that doesn't work (no history point is saved). This is not surprising, considering how <code>Response.Redirect</code> works.</p></li>
  </ul>
  
  <p>Is there some solution I have missed? I'm using .NET 3.5SP1, in case it matters.</p>