最近做了個項目,樣式是用CSS控制,發現在使用了response.write後樣式發生了變化,位置和字型都不正確。Response.Write("<script>alert(')</script>")這種用法也是這樣,2003中沒有這種情況,很不明白,恰巧看到了csdn上的一個文章也是討論這個問題的,其中提到原因有:
ASP.NET 2.0裡預設使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">文檔定義模型,這個dtd的規則與以前的不同,因此,許多以前寫的代碼在新標準下無法正常運行。
-----------------------------------------------
Response.Write 表示在當然輸-出流位置寫入資料
ASP.NET 中不要隨便使用 Response.Write,會打亂 ASP.NET 的輸出資料流順序
在 .aspx.cs 中使用 Response.Write 的輸出會出現在頁面的最頂部
會導致頁面配置得不到預期效果
-------------------------------------------------
通常情況不要用response.write,他會打亂你的物件導向模型
------------------------------------------------
用這個來代替:
Page.ClientScript.RegisterStartupScript(this.GetType(),"alert","<script>alert('messagebox效果');</script>");
後言:由於div是流布局,response.write()輸出得內容總是在頁面得最前端,打破了原有得流布局,所以會造成樣式改變,但是還有疑問得是為什麼字型也會改變還不清楚