自动重定向页面

时间:2011-03-06 12:50:54

标签: c# asp.net

如何使用c#代码在1分钟后自动将ASP.NET页面重定向到另一个页面。

8 个答案:

答案 0 :(得分:18)

您可以使用以下内容:

<meta http-equiv="Refresh" content="60; url=http://your.new/url/here" />

“60”是页面重定向之前等待的时间(以秒为单位)。

答案 1 :(得分:10)

试试这一行代码: 这里5表示5秒后重定向,如果你想在1分钟后重定向,则表示60。

protected void btnRedirect_Click(object sender, EventArgs e)  
{  
    Response.AddHeader("REFRESH", "5;URL=YourNextPage.aspx");  
}

此代码您还可以放入页面的Load事件,以便在加载当前页面后重定向到另一个页面。

答案 2 :(得分:6)

由于C#在服务器端执行,因此在服务器端经过一段时间后,您无法使用C#代码进行重定向。您可以通过在HTML中使用元标记来实现此目的:

<meta http-equiv="refresh" content="300; url=newlocation">

您可以使用C#编写代码来创建此标记,以下是一个示例:

HtmlMeta meta = new HtmlMeta();  
HtmlHead head = (HtmlHead)Page.Header;

meta.HttpEquiv= "refresh";
meta.Content = "300; url=newlocation";
head.Controls.Add(meta);  

答案 3 :(得分:2)

你可以使用:

System.Threading.Thread.Wait(60); 
Response.Redirect("Somepage.aspx");

编辑:

System.Threading.Thread.SpinWait(60);
Response.Redirect("Somepage.aspx");

答案 4 :(得分:2)

注意:SpinWait参数是循环计数而不是秒,如上所示。

摘自MSDN网页http://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait.aspx

  

SpinWait方法对于实现锁定非常有用。 .NET Framework中的类(如Monitor和ReaderWriterLock)在内部使用此方法。 SpinWait本质上将处理器置于一个非常紧密的循环中,循环计数由iterations参数指定。因此,等待的持续时间取决于处理器的速度。

答案 5 :(得分:1)

有很多方法可以做到这一点,但我喜欢使用这个代码,因为它在许多不同的环境中使用时效果很好。

HtmlMeta oScript = new HtmlMeta();
oScript.Attributes.Add("http-equiv", "REFRESH");
oScript.Attributes.Add("content", "60; url='http://www.myurl.com/'");
Page.Header.Controls.Add(oScript);

答案 6 :(得分:0)

在客户端上执行此操作会比在服务器上执行此操作更好。

您需要使用javascript设置计时器,然后重定向。

请参阅有关如何重定向的信息: How to redirect to another webpage in JavaScript/jQuery?

查看此计时器:
Loop timer in javascript

http://www.w3schools.com/js/js_timing.asp

http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

答案 7 :(得分:0)

我喜欢用JavaScript做我的东西:-)我喜欢JS。这是我的JS解决方案。

<script type="text/javascript"><!--
setTimeout('Redirect()',4000);
function Redirect()
{
  location.href = 'your-redirect-to-link';
}

// --></script>

页面将在4分钟后重定向。你必须明显插入头部。