2011-06-28 57 views
0

我試圖在重定向之前顯示警告框,但它不工作。警報框僅在 重定向未完成時才起作用。無法在重定向前打開警報框.ASP.NET

我修改了流行Alert.Show(「串」)類,從的Mads克里斯滕森如下....

public static class Alert 
{ 

    /// <summary> 
    /// Shows a client-side JavaScript alert in the browser. 
    /// </summary> 
    /// <param name="message">The message to appear in the alert.</param> 

    public static void Show(string message) 
    { 
     // Cleans the message to allow single quotation marks 
     string cleanMessage = message.Replace("'", "\\'"); 

     //replacing script string with strSCript 
     //string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>"; 

     //added this below 
     string strScript = "<script type=\"text/javascript\" language=\"javascript\">"; 
     strScript += "alert('" + cleanMessage + "');"; 
     strScript += "window.location.href='http://localhost/Gadgeteer/IncToH/IncToH.zip';"; 
     strScript += "</script>"; 


     // Gets the executing web page 
     Page page = HttpContext.Current.CurrentHandler as Page; 

     // Checks if the handler is a Page and that the script isn't allready on the Page 
     if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) 
     { 
      page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", strScript); 

     } 
    } 

} 
//calling from code behind 
Alert.Show("message"); 
+1

適合我。顯示警報後會發生重定向。 –

+0

我沒有看到您發佈的代碼存在問題。嘗試檢查發送到瀏覽器的源以確定潛在問題。我把你的JavaScript,它工作得很好。 – kakridge

回答

1

你可能有東西在報警功能畸形和失敗,但重定向不是。請檢查呈現給瀏覽器的內容並考慮改進您的警報消息。如果消息是動態的,請注意避免XSS。

+0

我非常感謝所有的答案。非常感謝Alison和Kenny.What是檢查瀏覽器渲染的最佳方法,是否有一個工具可以用來暫停和檢查?對於基本問題抱歉,但我不是知識淵博。 –

+0

一個簡單的方法是右鍵單擊頁面並選擇「查看源代碼」或「查看頁面源代碼」。瀏覽器之間的確切菜單選項會有所不同。只要查找腳本塊發生故障並將其發回問題即可。如果由於重定向而難以獲得它,可以嘗試使用像螢火蟲或提琴手這樣的工具。 – kakridge

+0

您好肯尼和艾莉森,再次感謝您的答覆。我浪費了每個人的時間。我有兩個重定向,一個在警報類和另一個在頁面後面的代碼,這是沒有評論out.Embarrasing.Thanks再次尋求幫助,以及使用螢火蟲的提示。 –