發生原因:
ASP.NET 預設採用「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd」定義
該定義要求在「<!DOCTYPE ... >」的前面不可以以任何的輸出
不過當我們在程式碼中使用 Response.Write() 方法來做輸出時,就會發生違反定義的情況
這時候就會發生 CSS 異常的情形。
解決方法:別使用 Response.Write 來輸出 JavaScript alert 語法
以下列出幾種替代方案:
方法一(使用 Literal 元件):
在頁面裡面拉一個 Literal 元件,並且在需要印出 JavaScript alert 的時候下
Literal.Text = "<script language=\'javascript\'>alert(\'" + msg + "\')</script>";
其中 msg 是你要顯示的訊息
或是
Literal AlertMsg = new Literal();
AlertMsg.Text = "<script language=\'javascript\'>alert(\'" + msg + "\')</script>";
this.Page.Controls.Add(AlertMsg);
方法二(註冊 Client 的 Head Script):
Page.RegisterClientScriptBlock("AlertMsg", "<script language=\'javascript\'>alert(\'" + msg + "\')</script>");
或是
ClientScript.RegisterClientScriptBlock(this.GetType(), "AlertMsg", "<script language=\'javascript\'>alert(\'" + msg + "\')</script>");
留言列表