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 选择 的相关文章

  • 在 Asp.Net 中以编程方式添加样式表

    我想以编程方式在头部添加样式表 但我看到的示例之一似乎需要多行代码才能添加一个样式表 即使我可能需要很多 示例代码 HtmlLink css new HtmlLink css Href css fancyforms css css Attr
  • Chrome 如何更新网址栏补全?

    我真的很喜欢使用 Chrome 的地址栏 因为它会记住经常访问的网站 并且经常根据我之前输入和 或访问过的内容提出良好的补全建议 例如 我可以输入t在地址栏中 Chrome 会自动将其填充为twitter com 或者我可以输入mapsCh
  • 在 ASP.NET 中调用异步方法时的令人困惑的行为

    我使用 Visual Studio 2012 创建了一个 ASP Web 应用程序 如果我修改默认页面如下 public partial class Default Page static async Task PerformSleepin
  • 我们是否需要安装 Office 才能使用 OpenXML?

    我正在使用 OpenXML 来操作文档 通过OpenXML打开文档需要安装office吗 不需要 您只需要引用提供所有 OpenXML 功能的库 该库不依赖于 Office
  • 如何使用 BoundFields 将 FooterTemplate 添加到 GridView

    希望您周末愉快 终于我有了一些编辑 删除事件器来与 LINQ 支持一起工作 我有一个添加记录事件 我知道它正在工作 但是在尝试了一部分之后 我不知道如何在页脚中添加一些文本框 所以它是从页眉到页脚的一行 没有向右或向左移动 有人可以帮助我吗
  • 了解 ASP.NET 应用程序文件夹

    ASP NET 中的应用程序文件夹用于存储对运行网站至关重要的各种元素 我想更深入地了解这些文件夹 特别是文件夹的可访问性 根据有关的文章ASP NET 网站布局 http msdn microsoft com en us library
  • 路径访问被拒绝 VS 2017 无法复制文件

    最近 Visual Studio 遇到了最奇怪的问题 我正在运行 2017 年 我有一个与同事合作了一段时间的存储库 有一天我突然尝试构建 但遇到了一些错误 内容如下 访问路径 function json 被拒绝 然后 在多次尝试构建和清理
  • 如何在 ASP.NET 中获取负载均衡器后面的主机名?

    我有几台服务器和一个负载均衡器 我想显示当前正在为该页面提供服务的服务器名称 我在用HttpContext Current Request ServerVariables SERVER NAME and HttpContext Curren
  • 将 NameValueCollection 绑定到 GridView?

    我应该使用哪种集合来将 NameValuecollection 转换为可绑定到 GridView 直接做的时候没效果 aspx cs 中的代码 private void BindList NameValueCollection nvpLis
  • 编辑和重播 XHR chrome/firefox 等?

    我一直在寻找一种方法来改变XHR request在我的浏览器中制作 然后再次重播 说我有完整的POST请求在我的浏览器中完成 我唯一想要更改的是一个小值 然后再次播放 直接在浏览器中执行此操作会更容易 更快捷 我用谷歌搜索了一下 但没有找到
  • jquery ajax可以调用外部webservice吗?

    jquery ajax代码可以调用吗网络服务来自另一个域名或另一个网站 像这样 ajax type POST url http AnotherWebSite com WebService asmx HelloWorld data name
  • 如何找到 IIS 在负载/性能测试期间模拟的平均并发用户数?

    我正在使用 JMeter 进行负载测试 我正在练习通过简单地增加我的分布式 JMeter 测试用例中的线程数并启动测试来查找我们的网络服务器可以处理的最大并发线程 用户 数量 然后 我突然意识到 虽然 MAX 数字可能有用 但REAL我的网
  • mouseover 和 mouseout 事件在子进程上触发

    代码 div div div div 如果我将鼠标悬停在Navigation the Drop Downdiv 向下滑动 如果我将鼠标移开 它会向上滑动 问题是如果我将鼠标悬停在孩子上Drop Downdiv它也向上滑 动 有谁知道我该如何
  • jQuery 在 Chrome 下发现错误元素

    我使用 jQuery 迭代 HTML 表 并动态填充每行的行号 通过在文本框中填充行号 function updateRowNums myTable find tr each function index this find input i
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 如何确保为客户端加载最新版本的 javascript 代码?

    我们的客户拥有数千名用户 他们都使用 Internet Explorer 和大量的 javascript 文件 这些文件可以增强他们对我们产品的用户体验 我遇到的问题是 每当我们更新这些脚本之一时无法知道客户端是否看到的是最新版本 我们要做
  • 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

    我只是想了解为什么我不能在 Web 服务中使用静态 Web 方法 为什么会受到限制 有人可以给我对此进行简洁的解释吗 答案是 因为你不能 它不是这样设计的 其设计是 将创建 Web 服务类的实例 然后调用实例方法 我只能猜测微软为什么这样设
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • Android onChange 事件未在 android 5 (Lollipop) 上的 chrome 历史记录的 contentObserver 中触发

    我注意到我的 chrome 历史记录和书签的 contentObservers 在 android lolipop 上不再触发 该代码在旧版本的 android 上完美运行 无论 chrome 版本如何 但在 Lollipop 上它不再运行

随机推荐