2011-07-19 131 views
-1

下面是我的代碼,關閉頁面加載彈出窗口也我想向用戶顯示一個消息框PLZ登錄以及我的彈出窗口變得接近,但它在屏幕上閃爍是否有任何方法來阻止做那。彈出窗口閃爍

StringBuilder sb = new StringBuilder(); 
sb.Append("<script>"); 

sb.Append("window.close();"); 

sb.Append("</script"); 

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", sb.ToString(), false); 

MessageBox.Show("Please Sign In first...", "Login Message", MessageBoxButtons.OK, MessageBoxIcon.Question); 
return; 
+0

更多標籤請 – Snowbear

回答

1

你的代碼沒有意義。你打電話給RegisterClientScriptBlock,很明顯你在使用ASP.NET WebForms。但你也試圖撥打MessageBox.Show(看起來像WinForms版本)。你不得不從同一個代碼庫中使用這兩個框架,這是有原因的:它們不是一起工作的。

如果您使用ASP.NET,這意味着您的C#代碼在Web服務器計算機上作爲Windows服務運行。這意味着,如果用戶訪問您的網站,您將嘗試在服務器機器(位於某處鎖定的服務器機房)上顯示對話框。您網站的訪問者在他們的電腦上看不到任何東西。實際上,由於IIS作爲非交互式服務運行,我認爲對MessageBox.Show的調用將被忽略。

在訪客機器上運行的唯一代碼是由您的ASP.NET頁面生成的HTML和JavaScript。如果你想向用戶顯示一個對話框,你需要使用JavaScript。最簡單的方法是致電window.alert()

+1

在最好的情況下,它被忽略。最壞的情況是,它會彈出一個永遠不會被確認的消息框,從而有效地掛起系統。除桌面客戶端應用程序外,不惜任何代價避免使用「MessageBox.Show」。 –