ASP.NET - Google Chrome 缓存 DropDownList 选择

2024-05-14

我的购物车页面上的 Google Chrome 和 Safari 似乎遇到了缓存问题。购物车中有 2 个下拉列表。当您在更改下拉列表中的值后点击结帐按钮时,它会将列表中选择的内容提交到数据库。

解释意外的行为有点困难,所以我会尝试一步一步地写出来,并说明我的问题。

假设第一个下拉列表的值为:

  • VALUE1
  • VALUE2
  • VALUE3

第二个下拉列表的值为:

  • DUMBO1
  • DUMBO2
  • DUMBO3

我将一件商品添加到我的购物车。

屏幕显示:VALUE1、DUMBO1

数据库显示:VALUE1,DUMBO1

我点击“结帐”。

数据库显示:VALUE1,DUMBO1(点击结帐后我看不到下拉列表,因为我不在购物车页面)

我按下后退按钮。

屏幕显示:VALUE1、DUMBO1

数据库显示:VALUE1,DUMBO1

我下拉 VALUE1 组合并选择 VALUE2,VALUE2 立即被选中,然后站点回发并在下拉列表中重新选择 VALUE1(从数据库重新加载)

屏幕瞬间显示:VALUE2,DUMBO1

数据库显示:VALUE1,DUMBO1

然后从 DROPDOWNLIST_SELECTIONCHANGED 事件回发后

屏幕显示:VALUE1、DUMBO1

数据库显示:VALUE1,DUMBO1

点击结帐。

数据库显示 VALUE1 ,DUMBO1 (点击结帐后我看不到下拉列表,因为我不在购物车页面)

Go back.

屏幕说:VALUE2, DUMBO1

数据库显示:VALUE1,DUMBO1

因此,它似乎记住了我对 VALUE2 的选择,尽管它在我签出之前跳回了 VALUE1。

这似乎是一个缓存问题,但是我有一些无缓存代码来防止缓存该页面,该页面在 Firefox 和 Internet Explorer 中运行良好,但在 Chrome 和 Safari 中似乎失败。我基本上是在购物车页面的标题中返回:无缓存、无存储和必须重新验证以尝试防止缓存,但基于这种情况,它似乎无论如何都会缓存页面,并且当我时不会重新加载它按后退按钮。

目前我愿意接受任何解决方案或建议。谢谢!


我遇到了类似的问题,我花了几天的时间进行测试,但没有找到答案。

假设我们有一个填充颜色的下拉列表。每次我更改值时,我都会使用 ajax 进行部分回发以保存值并执行更多操作,例如检查库存。

我选择(按顺序):红、白、蓝、绿。

然后我点击结帐,当我返回时,我惊讶地发现红色被选择了。我再回去,我被选为白色。返回四次后,然后是蓝色,最后是绿色。

我在 IE 和 FF 上尝试过,发现它工作正常,所以这不是代码中的错误。它必须与镀铬有关。

有人可以帮忙吗?

编辑:我尝试使用我正在制作的另一个网页,它工作正常,但我找不到它们之间可能导致它的任何差异。

Edit2: 我找到了“解决”这个问题的方法 using ScriptManager.RegisterStartupScript在导航事件中编写一个正确设置值的脚本,而不是在codebehind。这不是一种非常优雅的方式,但它对我有用,我希望对其他有类似问题的人也有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET - Google Chrome 缓存 DropDownList 选择 的相关文章

随机推荐