自动重定向页面

问题描述 投票:7回答:8

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

c# asp.net
8个回答
18
投票

你可以使用这样的东西:

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

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


10
投票

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

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

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


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);  

2
投票

你可以这样做:

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

编辑:

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

2
投票

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

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

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


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);

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/


0
投票

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

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

// --></script>

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

© www.soinside.com 2019 - 2024. All rights reserved.