如何使用asp.net完全刷新(ctrl+f5)页面?

发布于 2024-12-01 00:14:10 字数 371 浏览 0 评论 0原文

我现在正在处理一个 asp.net (Dotnetnuke) 项目。我需要动态更改页面中的图像。单击替换按钮(asp:Button)时,有时图像无法在页面上动态替换。当按下ctrl+F5时,它会改变。我的问题是,如何通过C#代码重新加载缓存?

另一个问题是,有时我通过将一些值存储到数据库来替换页面中的图像,然后按 ctrl+F5 在页面中进行更改,但是在单击 ctrl+F5 显示一个带有取消或重试按钮的对话框(在 Firefox 和 IE 上)。单击其中任何一个都会将相同的值存储到数据库中。如果我们再次刷新页面,数据库中的值将变为 3 倍。

I am working with an asp.net (Dotnetnuke) project now. I need to change an image in a page dynamically. While clicking replace button (asp:Button), some times the image cannot replace dynamically on the page. While pressing ctrl+F5, it will change. My question is, how to reload cache through C# code?

Another problem is that, sometimes I replace an image in a page by storing some values to database and press ctrl+F5 for making changes in the page, but while clicking ctrl+F5 there shows a dialog box with cancel or retry buttons (both on Firefox and IE). While clicking any one of them will store the same value to database. If we again refresh the page the value in the database is 3 times.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心房的律动 2024-12-08 00:14:10

您无法清除浏览器缓存。唯一的想法是在页面加载的 C# 代码中声明一个会话变量,并在第一次时将其值设置为 1

if (!IsPostBack)
            {
Session["refresh"]="1"
}

您需要在图像上传按钮事件中设置会话变量 Session["refresh"]= “1”
然后创建一个刷新按钮。在按钮事件中执行以下操作
就是这样。完成上传后,单击刷新按钮。然后它就像 ctrl+f5 按钮一样工作。如果您没有在刷新按钮事件中设置会话值 0,则最后一个事件将再次发生。如果您在数据库中输入一个值,如果您未设置会话变量 0,则会发生相同的任务。

   if(Session["refresh"].ToString()=="1")
   {
      Response.Write("<script type='text/javascript'>locaton.reload()</script>");
      Session["refresh"]="0";
    }

you cannot clear browser cache.the only idea is declare a session variable in c# code in page load and set its value is 1 at the very first time

if (!IsPostBack)
            {
Session["refresh"]="1"
}

you will need to set session variable in image upload button event Session["refresh"]="1"
then create a refresh button .in the button event do the following
thats all.after completeing your upload,click on the refresh button.then it work as ctrl+f5 button.if you not set the session value 0 in refresh button event the last event is again takesplace.if you enter a value in database,the same task takesplace if you not set session variable 0.

   if(Session["refresh"].ToString()=="1")
   {
      Response.Write("<script type='text/javascript'>locaton.reload()</script>");
      Session["refresh"]="0";
    }
终弃我 2024-12-08 00:14:10

JavaScript 无法为您访问转储缓存,抱歉。 C# 运行服务器,而不是客户端,所以它也无济于事。

如果您想破坏页面中某些项目的缓存,您可以添加一个随机参数

(我喜欢使用时间-戳)

或者,如果这是出于测试目的,请关闭浏览器中的缓存。

JavaScript cannot access dumping the cache for you, sorry. C# runs of the server, not the client, so it can't help either.

If you want to break the cache for certain items in the page you can add a random parameter

<img src="a.gif?x=123456"> (I like to use a time-stamp)

Alternately, if this is for testing purposes, turn off the cache in your browser.

清风不识月 2024-12-08 00:14:10

您可以通过管理用户控件来操纵网页各个部分的缓存特性。另请检查您的页面指令。

 <%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>

ASP.NET 的缓存功能相当广泛。我建议您花一些时间研究该应用程序指令;主要是页面和控件。

You can manipulate the cache charateristics of various portions of your web page by managing the user controls. Also check your page directives.

 <%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>

The caching functionality of ASP.NET is pretty extensive. I would recommend you spend some time studying the application Directives; mainly Page and Control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文