ASP.NET - DropDownList在Browser-Back-Button上包含错误的值

Bri*_*ter 5 asp.net drop-down-menu

我在DataList中有这个DropDownList.

<asp:DropDownList runat="server" ID="DDL_ProdCat" OnSelectedIndexChanged="DDL_ProdCat_SelectedIndexChanged" 
                  Autopostback="true" DataTextField="Name" DataValueField="ID" />
Run Code Online (Sandbox Code Playgroud)

当用户在此DropDownList中进行选择时,对于某些选择,它们将重定向到单独的页面.

重定向后,用户点击浏览器返回按钮,使用DropDownList返回到此页面.

不幸的是,仍然选择将它们重定向到新页面的选择.

  • DDL包含A,B - 初始选择值:A
  • 用户选择B - Postback将它们重定向到另一个页面
  • 用户在浏览器上"返回"
  • 页面现在显示"B"被选中,而页面状态表明仍应选择"A".该页面永远不会处于"B"状态,因为"B"被标记为将用户重定向到该另一页面.

当用户通过浏览器返回按钮重新访问页面时,有没有办法将DropDownList选项重置为特定值?

注意

  • 我在这里被迫使用DDL,因为常见的情况是不会发生重定向.我知道它通常不是将用户链接到其他页面的最佳选择.
  • 不幸的是,出于性能原因,我无法关闭整个页面的浏览器缓存

Pau*_*fam 4

如果可以删除页面级浏览器缓存,您可以尝试删除缓存,以便在用户返回时重新加载页面。将其添加到页面加载中:

Response.Expires = 0
Response.Cache.SetNoStore()
Response.AppendHeader("Pragma", "no-cache")
Run Code Online (Sandbox Code Playgroud)

  • @James,我相信 Response.Cache.SetCacheability(HttpCacheability.NoCache) 仅适用于 IE。[链接](http://stackoverflow.com/questions/914027/disabling-browser-caching-for-all-browsers-from-asp-net) (2认同)