2011-04-01 64 views
3

是否可以使用Response.AddHeader,特別是我試圖使用它的「刷新」。 我需要它在重定向前暫停,但代碼運行的位置在代碼隱藏的ASCX中。它什麼也不做,當我在我的代碼隱藏在下面:Response.AddHeader在一個ascx文件中

HttpContext.Current.Response.AddHeader("Refresh", "6;URL=Default.aspx"); 

任何方式我也可以把一個ASCX頁的代碼隱藏用戶?

回答

3

我不知道爲什麼這不適合你 - 它似乎是正確的語法將重定向添加到您的HTTP標頭,它適用於我在幾個瀏覽器。爲了調試這個,你可以運行Fiddler或者類似的工具來查看完整的HTTP響應,並且看看它是否沒有將它轉換爲標題。

您可能想嘗試稍微重新格式化 - 我看到的示例在分號和url之間以及url關鍵字之間留有空格。我懷疑這是問題,但值得一試,如果它沒有特定的瀏覽器:

Refresh: 0; url=http://www.example.com/ 

的另一種方法,也許調試容易,是使用元標籤,而不是HTTP頭,因此它實際上顯示在標記中。喜歡的東西:

var metaControl = new HtmlMeta 
    { 
    Content = "2;url=http://webdesign.about.com/", 
    HttpEquiv = "refresh" 
    }; 
Page.Header.Controls.Add(metaControl); 

這會<meta>標籤添加到您的<head>部分,它應該有預期的效果。

2

你試過

if(today == "Friday") 
{ 
    Response.Redirect("destination.aspx") 
} 

如果還是不行,請具體談談您要完成的任務。

+0

Response.Redirect不會爲我的情況工作,我清楚地表明,我需要暫停之前,它重定向,唯一的方法來暫停與Response.Redirect是通過使用像Thread.Sleep這只是不好的編程。這就是我正在尋找的一種方法來重定向用戶從一個ascx文件。 – atrljoe 2011-04-04 12:44:04