2008年03月20日 星期四

使用Page.ClientScript.RegisterClientScriptBlock出现缺失")"解决办法

     有的时候我使用Page.ClientScript.RegisterClientScriptBlock来注册JavaScript来显示被抛出来的异常。但是有些异常中包含有"'",如果使用Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", string.Format("<script>alert(’{0}‘)</script>", ex.Message));这种方法。JavaScript脚本会提示出现缺失")"的错误。
我通过观察ex.Message的内容发现里面有“'”,这样就使alert('')的结构会乱了。
解决办法:使用转移附:\,把alert('')里面的"'"换成\".例如:
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", string.Format("<script>alert(\"{0}\")</script>", ex.Message));