2011-03-06 369 views
6

如何在使用c#代碼1分鐘後自動將ASP.NET頁面重定向到另一頁面。自動重定向頁面

+0

它是否必須用'C#'編碼?或者你可以使用html元刷新標籤... – 2011-03-06 12:58:56

回答

17

您可以使用這樣的事情:

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

的「60」是在幾秒鐘的時間頁面重定向之前等待。

+1

+1優秀的答案! =) – gideon 2011-03-06 13:14:53

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/

+1

不一定是javascript – davidsleeps 2011-03-06 13:01:31

+0

@david true,我的意思是它不是一個更好的選擇,編輯答案。 – gideon 2011-03-06 13:02:55

+0

更好是主觀的。在JS中做事情有缺陷。 – Mike 2017-01-09 18:34:14

6

不能使用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); 
2

你可以這樣做使用:

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

編輯:

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

感謝Pooya上面的代碼似乎正確,但不工作。你測試過了嗎? – 2011-03-06 13:32:50

+0

哎呀!我錯過了一些東西,你應該使用System.Threading.Thread.SpinWait(60)而不是該行。祝你好運。 – Pooya 2011-03-06 17:21:19

+0

這不適用於原始提問的問題。 – Seany84 2011-10-06 11:20:16

2

注意:SpinWait參數是循環計數,而不是上述建議的秒數。

從MSDN頁http://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait.aspx

的SpinWait方法是實現鎖有用服用。 .NET Framework中的類(如Monitor和ReaderWriterLock)在內部使用此方法。 SpinWait基本上使處理器進入一個非常緊密的循環,循環計數由迭代參數指定。因此等待的持續時間取決於處理器的速度。

0

我喜歡在JavaScript中做我的東西:-)我喜歡JS。這是我的JS解決方案。

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

// --></script> 

頁面將在4分鐘後重定向。你必須明確地將它插入頭部。

9

試試這一行代碼: 這裏5代表5秒後重定向,如果你想在1分鐘後重定向,則設爲60。

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

此代碼你也可以把在Load活動頁面,以便它會加載當前頁面後重定向到另一個頁面。

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