由于 StringBuilder 添加新行,Javascript 警报未启动

标签 javascript .net stringbuilder

我正在使用StringBuilder AppendLine插入一些要在JavaScript警报框中显示的行。警报框没有触发,当我看到 View 源时,我得到以下信息:

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().Replace(Environment.NewLine, "\\n"),而不是StringBuilder.ToString()。这应该转义 JavaScript 中的换行符,因此结果是:

alert("Void SendMail(Int32):\nLine number: 0 \nObject reference not set to an instance of an object.\n");

我真诚地希望您也将异常记录在服务器端的某个地方。

关于由于 StringBuilder 添加新行,Javascript 警报未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6354548/

相关文章:

java - 将 BufferedReader 转换为 String 时出现乱码 (%22)

javascript - 无法显示 WEB-INF 中的 html 页面

javascript - 将单词按正确的顺序放置以通过拖放造句

java - Ajax response.getWriter() 不支持特殊字符

.net - Major.minor.build.revision 版本控制风格 vs year.month.day.whatever 版本控制风格

c# - .NET 中如何实现 "Event"对象?

javascript - 如何查看苹果收据的有效期?

c# - .NET 内存大小

c# - TextBox.Text += "string";与 TextBox.AppendText ("string");

java - Java 的 printf() 方法对于连接和打印字符串是否有效?