response.write:Response.Write后css失效问题的解决来源: 发布时间:星期六, 2009年3月28日 浏览:0次 评论:0
这两天测试网站WebSite时候发现网站WebSite注册页面个bug实现功能是当点击”注册”按钮进行注册后台代码中判断验证码当用户输入验证码和生成验证码不致时以alert形式弹出对话框提示用户验证码.但这时当对话框弹出后页面中有些css样式失效. 查找了下原因发现是生成弹出对话框代码是这么写:Response.Write("<script>alert('验证码不正确');</script>");这段代码在执行时候会在页面最顶部生成对应html代码.而由于ASP.NET 2.0默认采用http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd文档类型定义它就要求在<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">前面不能有任何输出 解决办法是:不用Response.Write思路方法(缺点是丢失css样式 2是破坏代码结构).而用ClientScript.RegisterClientScriptBlock思路方法来实现相应功能.我代码: /**//// <summary> /// 弹出提示信息框 /// </summary> /// <param name="strKey">key值</param> /// <param name="strInfo">提示信息</param> public void MessageBox( strKey, strInfo) { (!ClientScript.IsClientScriptBlockRegistered(strKey)) { strjs = "alert('" + strInfo + "');"; ClientScript.RegisterClientScriptBlock(this.GetType, strKey, strjs, true); } } 时使用如下方式: MessageBox("opsuccess","恭喜,密码修改成功,请记住新密码!"); 这样既不会产生css样式丢失问题生成html代码也不破坏html文件结构. 0
相关文章读者评论发表评论 |
|