Chrome 后退按钮页面刷新 - ASP.net

     2023-02-22     167

关键词:

【中文标题】Chrome 后退按钮页面刷新 - ASP.net【英文标题】:Chrome Back button page refresh - ASP.net 【发布时间】:2011-02-13 19:22:24 【问题描述】:

我有一个 ASP.net 应用程序 (c#)。

当用户在特定页面上时,他们单击此页面上的链接,将他们带到子页面,显示产品详细信息。

如果用户单击浏览器后退按钮,我需要将父页面刷新到其初始状态。即所有输入数据的文本框都需要为空白,任何隐藏的字段都需要重置等。基本上,当用户点击返回时,我需要一个 CTRL-F5。

禁用后退按钮不是一种选择。

我只在某些页面上需要这个。

在 IE 和 Firefox 中,我可以毫无问题地使用它。但是对于 chrome,文本框仍然包含它们的值,隐藏字段也是如此。如果我在 Chrome 中按 CTRL-F5,页面会正确重置为其初始状态。

这是我尝试过的代码。

<%@ OutputCache Location="None" VaryByParam="None" %>

还有这个:

   Response.Buffer = true;
   Response.Cache.SetCacheability(HttpCacheability.NoCache);
   Response.Cache.SetAllowResponseInBrowserHistory(false);
   Response.Cache.SetNoStore();

还有这个:

    Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
    Response.Cache.SetValidUntilExpires(false);
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();

我也尝试了各种不同的组合,但没有成功。

谢谢

【问题讨论】:

您在哪个 Chrome(s) 上尝试过这个?开发?贝塔?稳定的?窗户? 【参考方案1】:

按下浏览器的后退按钮时,浏览器不会自动重置 INPUT 字段。相反,浏览器会保留用户的输入,使用户更容易返回并更改输入。

您无法在服务器端解决此问题,因为浏览器会为此绕过缓存。相反,您可以在输入字段上使用autocomplete="off" HTML 属性来防止它们被浏览器保留。

您也可以使用 JavaScript 手动重置表单:

document.getElementById("form1").reset();

【讨论】:

谢谢。这并不能解释为什么 Ie 和 Firefox 似乎令人耳目一新,但 Chrome 却没有。 我猜这是 Google 人员的设计选择。我仍然很高兴他们支持他 autocomplete 属性作为解决方法。 这是 Chrome for devs 的一个讨厌的“功能”。我花了很长时间才弄清楚我的动态表单发生了什么(用户可以添加新行,这些行在提交时会保存到数据库中)。在“返回”时,Chrome 不会填写先前添加的行的 db id(即使我的应用程序以 HTML 格式输出),所以我的应用程序认为它们都是新的,并在进一步提交时复制了它们。不过,autocomplete="off" 可以解决问题。【参考方案2】:

这两行代码为我解决了 Chrome 问题:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

我使用这个可选行告诉浏览器不要为同一页面的每个请求创建历史条目:

Response.Cache.SetAllowResponseInBrowserHistory(true);

来源:

Most popular answer in this post

Optional line

【讨论】:

【参考方案3】:

“蛮力”解决方案是在页面上放置一些 javascript,以便在页面加载时将数据设置为某个已知状态。因此它会根据数据数组或 json 对象查找所有元素并设置数据。在最初的请求中,由于一切都是默认的,因此设置没有任何区别。在后退按钮请求中,由于仍然需要运行 javascript,因此它会重置所有值,而不管浏览器如何。

我不相信您可以强制浏览器以您描述的方式运行,因为这取决于每个浏览器他们希望如何实现后退按钮 - chrome 只是以不同的方式执行。

【讨论】:

【参考方案4】:

您也可以将 autocomplete="off" 放在表单标签上,而不是每个输入字段上。

【讨论】:

如何避免在asp.net中的按钮单击事件后页面刷新

】如何避免在asp.net中的按钮单击事件后页面刷新【英文标题】:Howtoavoidpagerefreshafterbuttonclickeventinasp.net【发布时间】:2014-02-1500:09:44【问题描述】:这是以下代码,一旦btninsert点击事件完成,页面就会刷新我想在点击btninsert后... 查看详情

如何使用 asp.net 按钮单击在引导模式中停止刷新页面

】如何使用asp.net按钮单击在引导模式中停止刷新页面【英文标题】:howdoistoprefreshingpageinbootstrapmodalwithasp.netbuttonclick【发布时间】:2016-12-2604:14:40【问题描述】:我试图在引导程序的模式视图中显示数据,数据是从数据库中检索... 查看详情

(asp.net)点击按钮进行相应操作,怎么实现页面无刷新

服务器控件Button点击它总是会刷新页面怎么实现不刷新?各位大侠!我知道用ajax而且我也知道拖控件但是效率太低我就是想知道怎么用JavaScript掉用webservice实现无刷新效果没有办法。runat=Server的控件必须刷页面,就算你用AJAX,还是... 查看详情

在 asp.net 中执行回发操作后刷新页面

...-0721:11:06【问题描述】:我在我的asp.net网格中添加了命令按钮。使用该按钮执行操作后,我们刷新网格以反映新数据。(基本上这个动作复制了网格行)。现在当用户使用F5刷新页面时,如果我们选择“重试”,则会显示一条警... 查看详情

html如何刷新后退按钮点击页面?(代码片段)

查看详情

按下后退按钮后如何刷新页面

】按下后退按钮后如何刷新页面【英文标题】:Howtorefreshapageafterbackbuttonpressed【发布时间】:2018-09-3016:14:55【问题描述】:我有一个“列表页”。和一个添加页面。用户单击“添加页面”,转到他们添加一些实体的新页面。然后... 查看详情

从另一个控件中的控件刷新 asp.net 页面

...:2011-01-0916:12:47【问题描述】:我想在有人单击“添加”按钮后刷新我的asp.net页面。但是,“添加”按钮是另一个用户控件内的用户控件的一部分,子控件和父控件都包含在更新面板中:下面的代码被缩短显示,用户控件位于... 查看详情

ASP.NET MVC RedirectToAction 不刷新页面

...作时,我遇到了问题,页面没有更新。我必须在按下刷新按钮后独立调用刷新操作,以获得所需的结果。这是我的客户端代码 查看详情

关闭子页面后父页面中的Gridview不刷新 - ASP.NET WEB APP

...题描述】:我有一个父页面,它包含一个gridview和一个aspx按钮。当用户单击此按钮时,将弹出一个子页面作为模式。从子页面插入数据后,它应该关闭并刷新父页 查看详情

使用浏览器后退按钮进行 ASP.NET 身份验证登录和注销

】使用浏览器后退按钮进行ASP.NET身份验证登录和注销【英文标题】:ASP.NETauthenticationloginandlogoutwithbrowserbackbutton【发布时间】:2011-02-1019:57:12【问题描述】:我正在寻找一种解决方案,让用户在注销后使用浏览器的后退按钮导航... 查看详情

当通过链接或后退按钮打开时,强制 JSF 刷新页面/视图/表单

】当通过链接或后退按钮打开时,强制JSF刷新页面/视图/表单【英文标题】:ForceJSFtorefreshpage/view/formwhenopenedvialinkorbackbutton【发布时间】:2016-07-2617:36:23【问题描述】:我有一个将数据发布到外部页面的JSF页面。数据从JSF托管bean... 查看详情

清除 ASP.net 中的按钮名称参数

】清除ASP.net中的按钮名称参数【英文标题】:ClearButtonNameParameterinASP.net【发布时间】:2016-04-1909:35:49【问题描述】:嗨,我是ASP和MVC3的新手,我的问题是如何清除帖子中的按钮名称参数,因为每次单击带有按钮参数的按钮后刷... 查看详情

<asp.net>点击iframe页面中的按钮刷新父页面,但是不改变iframe先前的src

...(iframe本身就有一个默认的src),我在iframe的页面里点击按钮,用js使父页面刷新,但是我不想改变iframe链接的页面,怎样做到了?一刷新,iframe就恢复默认src了,哎,求助在父页面放置一个隐藏字段HiddenField,js刷新父页面之前... 查看详情

按下后退按钮时强制重新加载/刷新

】按下后退按钮时强制重新加载/刷新【英文标题】:Forcereload/refreshwhenpressingthebackbutton【发布时间】:2012-02-2217:13:02【问题描述】:我会尽力解释这一点。我有一个应用程序,在我的view页面中显示了50多个项目。用户可以点击单... 查看详情

js页面刷新前进后退

1、使用按钮<inputtype=buttonvalue=刷新onclick="window.location.reload()"><inputtype=buttonvalue=前进onclick="window.history.go(1)"><inputtype=buttonvalue=后退onclick="window.history.go(-1)">< 查看详情

asp.net用的c#语言能不能做到点击按钮不刷新页面?

...告诉我不用Ajax能不能做到啊。。郁闷哎~~用Html控件中的按钮而不用Web控件中的按钮即可 如果你要在后台添加按钮的点击事件只需添加runat="server" onserverclick=""属性即可如:<input id="btnTest" type... 查看详情

为啥asp.net点一下按钮页面就刷新一次呢,有啥方法可以解决

...强的你也网上了解一下对了刷新的原因告诉你是因为一般按钮都会服务器回传(同步)ajax就是用html里面的按钮写事件异步回传 参考技术B用html控件,这样就不会自动postback了。还有就是。用AJAX 参考技术C把控件的AutoPostBack属性设置... 查看详情

HTTP 错误:405(此页面不工作)当我刷新页面时(ASP.Net Core MVC)

...作,我有一个带有数据表的页面,其中每个记录都有一个按钮,可以提供该记录的更多详细信息。当我单 查看详情