繁体   English   中英

自动重定向页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM