由于StringBuilder添加了新行,因此Javascript警报未触发

问题描述

| 我正在使用
StringBuilder AppendLine
插入一些要在javascript警报框中显示的行。警报框未触发,看到视图源后,我得到以下信息:
alert(\"Void SendMail(Int32): 
Line number: 0 
Object reference not set to an instance of an object.
\");
StringBuilder代码
sb.AppendLine(string.Format(\"{0}: \",frame.getmethod()));
sb.AppendLine(string.Format(\"Line number: {0} \",frame.GetFileLineNumber()));
sb.AppendLine(ex.Message);
请告诉我该如何解决?     

解决方法

        代替
StringBuilder.ToString()
,您可能应该使用
StringBuilder.ToString().Replace(Environment.NewLine,\"\\\\n\")
。这应该转义javascript中的换行符,因此结果是:
alert(\"Void SendMail(Int32):\\nLine number: 0 \\nObject reference not set to an instance of an object.\\n\");
我真的希望您也将异常记录在服务器端。