Asp.Net中Response.Write()导致页面CSS无效

问题描述:在修改NB网站的时候,发现响应按钮后出现全部字体变大现象,即不受CSS样式控制。

问题查找:因为这个响应按钮的方法内语句比较少,Response.Write()尤为惹眼,猜想是因为直接输入而产生了此问题:Response.Write("<script>alert('请勾选“本人已阅读兑换细则”')</script>");

问题求证:删除语句后发现果然一切正常了。

问题分析:Response.Write()是输出到页面的最顶端,导致了页面不符合DTD规范:
<!-- DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" -->

问题解决:使用微软推荐方法:Page.RegisterStartupScript("submitImageButtonClick", "<script>alert('请勾选“本人已阅读兑换细则”')</script>");
第一个参数是Script的名字,随便取。
第二个参数是Script,直接贴上去就行。