由于StringBuilder添加了新行,Javascript警报不会启动

时间:2011-06-15 07:40:34

标签: javascript .net stringbuilder

我正在使用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);

请告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

而不是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");

我真的希望你也在服务器端的某处记录异常。