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

How to completely refresh (ctrl+f5) a page using asp.net?

本文关键字:net asp 刷新 何完全 ctrl+f5 一个      更新时间:2023-09-26

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

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

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

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

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

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

JavaScript无法为您访问转储缓存,抱歉。c#运行在服务器上,而不是客户端,所以它也帮不上忙。

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

<img src="a.gif?x=123456">(我喜欢使用时间戳)

或者,如果这是为了测试目的,关闭浏览器中的缓存

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

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

ASP的缓存功能。NET是非常广泛的。我建议你花点时间研究应用指令;