[英]redirect a page automatically
如何在1分钟后使用c#代码自动将ASP.NET页面重定向到另一个页面。
您可以使用如下形式:
<meta http-equiv="Refresh" content="60; url=http://your.new/url/here" />
“ 60”是页面重定向之前等待的时间(以秒为单位)。
尝试以下一行代码:这里的5表示5秒后重定向,如果要在1分钟后重定向,则将其设置为60。
protected void btnRedirect_Click(object sender, EventArgs e)
{
Response.AddHeader("REFRESH", "5;URL=YourNextPage.aspx");
}
您还可以将此代码放入页面的Load
事件中,以便在加载当前页面后将其重定向到另一页面。
由于C#是在服务器端执行的,因此您不能在一段时间后使用C#代码从服务器端重定向。 您可以通过在HTML中添加meta标签来做到这一点:
<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);
您可以使用:
System.Threading.Thread.Wait(60);
Response.Redirect("Somepage.aspx");
编辑:
System.Threading.Thread.SpinWait(60);
Response.Redirect("Somepage.aspx");
注意:SpinWait参数是循环计数,而不是上面建议的秒数。
取自MSDN页面http://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait.aspx
SpinWait方法对于实现锁很有用。 .NET Framework中的类(例如Monitor和ReaderWriterLock)在内部使用此方法。 SpinWait本质上将处理器置于一个非常紧密的循环中,循环计数由迭代参数指定。 因此,等待时间取决于处理器的速度。
有很多方法可以执行此操作,但是我喜欢使用此代码,因为在许多不同情况下使用时,它都能很好地工作。
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);
在客户端上执行此操作比在服务器上执行操作更好。
您需要使用javascript设置计时器,然后重定向。
看到有关如何重定向的信息: 如何在JavaScript / jQuery中重定向到另一个网页?
计时器请参见以下内容:
JavaScript中的循环计时器
http://www.w3schools.com/js/js_timing.asp
http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
我喜欢在JavaScript中做我的工作:-)我喜欢JS。 这是我的JS解决方案。
<script type="text/javascript"><!--
setTimeout('Redirect()',4000);
function Redirect()
{
location.href = 'your-redirect-to-link';
}
// --></script>
该页面将在4分钟后重定向。 您显然必须将其插入头部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.