如何在ASP.NET中命令页面重新加载?

时间:2014-03-17 19:01:05

标签: c# asp.net

我试图找出如何在用户选择注销时重新加载页面。这涉及将登录的cookie设置为过期,当页面重新加载时,它将显示为未登记的用户。

// expiring the cookie for logout
ARCookie.Expires = DateTime.Now;
Response.Cookies.Set(ARCookie);

这样做的快速而肮脏的方法是以下三种方法之一:

// reload the page
Response.Redirect(thisPage);
//or
Server.Transfer(thispage, false);
//or 
Server.TransferRequest(thispage, false);

其中哪一种是最好的方式,还是有另一种方法可以做到这一点。我无法在Page对象中找到任何类型的显式“刷新”命令或操作。是否有一个我可能在某处失踪?

4 个答案:

答案 0 :(得分:2)

这似乎是最合理的方法:

Response.Redirect(thisPage);

请记住,在HTTP请求/响应环境中实际上没有“重新加载”的概念。客户端发出请求,服务器返回响应。从客户端角度来看,“重新加载”是重新发出相同的请求。 服务器的透视图中的“重新加载”是在响应中指示客户端应发出特定请求,即使该请求是回到同一页面也是如此。重定向响应是服务器指示此的标准方式。

答案 1 :(得分:2)

你可以抛出一些JS代码并在代码隐藏中注册吗?请尝试以下方法:

 StringBuilder sb = new StringBuilder("<script ");
 sb.Append(" type=\"text/javascript\">\r\n");
 sb.Append("window.location.reload();\r\n");
 sb.Append("</script>")

 RegisterStartupScript("reload", sb.ToString());

您也可以根据需要使用RegisterClientScriptBlock()。

答案 2 :(得分:2)

我认为在大多数情况下,您无需在注销后返回同一页面。您重定向到主页面,准备显示正确的布局是否记录用户。

注销后总是返回当前页面可能会导致意外行为,例如授权失败页面,或者让用户看到已登录用户的页面。

所以我不会说三者中的任何一个。也许像是

System.Web.Security.FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");

答案 3 :(得分:1)

在HTTP协议中,没有&#34;重新加载&#34;。在删除cookie之后,将浏览器重定向到同一页面应该可以正常工作。

相关问题