如何在ASP.NET中刷新页面?(让它通过代码重新加载)

Ahm*_*rid 154 asp.net

如何在ASP.NET中刷新页面?(让它通过代码重新加载)

我宁愿不使用Response.Redirect(),因为我不知道我将在哪个页面上,因为它位于sharepoint内部的一个用户控件内.

chr*_*ris 388

在我的用户控件中,在更新数据之后我做了:

  Response.Redirect(Request.RawUrl);    
Run Code Online (Sandbox Code Playgroud)

这确保了页面被重新加载,并且它可以从用户控件中正常工作.您使用RawURL而不是Request.Url.AbsoluteUri保留可能包含在请求中的任何GET参数.

您可能不想使用:__doPostBack,因为许多aspx页面在执行回发时表现不同.

  • @chris你会使用第二个参数作为Response.Redirect(Request.RawUrl,false)吗?显然,这是使用reponse.redirect时的最佳做法.你怎么看? (4认同)
  • @aleafonso是对的 - 除非你需要暂停页面上的所有处理,这有时表明设计计划不佳,你应该传递一个假的第二个参数.不传递第二个参数或传递true,会抛出HttpException并影响性能并填充事件日志. (2认同)

Ari*_*sky 45

将页面呈现给客户端后,您只有两种强制刷新的方法.一个是Javascript

setTimeout("location.reload(true);", timeout);
Run Code Online (Sandbox Code Playgroud)

第二个是Meta标签:

<meta http-equiv="refresh" content="600">
Run Code Online (Sandbox Code Playgroud)

您可以在服务器端设置刷新间隔.


小智 41

这可能会迟到,但我希望它可以帮助那些正在寻找答案的人.

您可以使用以下行来执行此操作:

Server.TransferRequest(Request.Url.AbsolutePath, false);
Run Code Online (Sandbox Code Playgroud)

尽量避免使用,Response.Redirect因为它会增加流程中的步骤.它实际上做的是:

  1. 使用重定向标头返回页面
  2. 浏览器重定向到目标URL.

如您所见,相同的结果需要2次旅行而不是1次旅行.

  • +1表示Server.Transfer()比Response.Redirect()更有效 (2认同)

And*_*are 38

试试这个:

Response.Redirect(Request.Url.AbsoluteUri);
Run Code Online (Sandbox Code Playgroud)

  • @Guffa 完全取决于使用重定向的上下文。如果它用于基于动作或条件专门调用的动作/代码块中,那么它只会在每次迭代时触发一次,并且如果单独正确编码。 (2认同)

jru*_*ell 13

使用javascript的location.reload()方法.

<script type="text/javascript">
  function reloadPage()
  {
    window.location.reload()
  }
</script>
Run Code Online (Sandbox Code Playgroud)


Sun*_*rya 8

在asp.net中有各种刷新页面的方法,比如......

Java脚本

 function reloadPage()
 {
     window.location.reload()
 }
Run Code Online (Sandbox Code Playgroud)

代码背后

Response.Redirect(Request.RawUrl)
Run Code Online (Sandbox Code Playgroud)

元标记

<meta http-equiv="refresh" content="600"></meta>
Run Code Online (Sandbox Code Playgroud)

页面重定向

Response.Redirect("~/default.aspx"); // Or whatever your page url
Run Code Online (Sandbox Code Playgroud)


Bry*_*nny 6

如果您不想进行整页刷新,那么如何在UpdatePanel中包装要刷新的内容然后进行异步回发呢?