Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net StringBuilder.AppendLine()不生成新行_.net_Vb.net_String_Email_Stringbuilder - Fatal编程技术网

.net StringBuilder.AppendLine()不生成新行

.net StringBuilder.AppendLine()不生成新行,.net,vb.net,string,email,stringbuilder,.net,Vb.net,String,Email,Stringbuilder,发生错误时,我正在生成电子邮件。我正在使用StringBuilder.AppendLine()和StringBuilder.AppendLine(String)构建电子邮件正文,但是我的电子邮件正文显示为一条很长的线,没有换行符 例如: Dim ErrorsStringBuilder作为新的StringBuilder ErrorsStringBuilder.AppendLine(String.Format(“状态:{0}消息:{1}”,Results.Status,Results.ErrorMe

发生错误时,我正在生成电子邮件。我正在使用
StringBuilder.AppendLine()
StringBuilder.AppendLine(String)
构建电子邮件正文,但是我的电子邮件正文显示为一条很长的线,没有换行符

例如:

Dim ErrorsStringBuilder作为新的StringBuilder
ErrorsStringBuilder.AppendLine(String.Format(“状态:{0}消息:{1}”,Results.Status,Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format(“失败:{0}总计:{1}”,Results.FailedCount,Results.TotalCount))
ErrorsStringBuilder.AppendLine(“批处理:”&Results.BatchNumber)
ErrorsStringBuilder.AppendLine()错误
ErrorsStringBuilder.AppendLine(“单个错误:”)
ErrorsStringBuilder.AppendLine()错误
对于每个失败的记录。。。。。。。
ErrorsStringBuilder.AppendLine(String.Format(“失败的记录ID:{0}消息:{1}”、FailedRecord.ID、FailedRecord.ErrorText))
下一个
这是MSDN中分别针对
.AppendLine()
.AppendLine(字符串)
的描述

将默认行终止符追加到当前行的末尾 StringBuilder对象

追加指定字符串的副本,后跟默认行 终止符到当前StringBuilder对象的末尾

我的问题是:为什么没有换行?为什么不应用默认的行终止符?我是不是误解了描述

顺便说一句,我确实看过,但没有解释为什么


我知道我可以使用
System.Environment.NewLine
“\n”
来获得换行符。

您的电子邮件正文似乎是
HTML
类型,但您正在呈现
简单文本
-

如果您确实希望它是
简单文本
,则在电子邮件对象集中
IsBodyHtml=false
它将在不修改StringBuilder代码的情况下呈现新行-

MailMessage mail = new MailMessage();
mail.IsBodyHtml = false;
如果您只需要HTML,请尝试在每行之后添加-

ErrorsStringBuilder.AppendLine("<br />");
要使其工作,您应该将这两条语句包含在两个不同的块元素中-

在这种情况下,我使用的是段落-

<html>
<body>
<p>Hi,</p>

<p>How are you?</p>
</body>
</html>
在您的情况下,您需要找出HTML来呈现所需的输出。否则,请使用

作为解决方法

带有
标记的HTML示例-

Dim ErrorsStringBuilder As New StringBuilder
ErrorsStringBuilder.AppendLine(String.Format("<p>Status : {0}  Message : {1}</p>", Results.Status, Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format("<p>Failed : {0}  Total : {1}</p>", Results.FailedCount, Results.TotalCount))
ErrorsStringBuilder.AppendLine("<p>Batch #: </p>" & Results.BatchNumber)
ErrorsStringBuilder.AppendLine()
ErrorsStringBuilder.AppendLine("<p>Individual Errors:</p>")
ErrorsStringBuilder.AppendLine()
For Each FailedRecord .......
  ErrorsStringBuilder.AppendLine(String.Format("<p>Failed Record ID : {0}  Message : {1}</p>", FailedRecord.ID, FailedRecord.ErrorText))
Next
Dim ErrorsStringBuilder作为新的StringBuilder
ErrorsStringBuilder.AppendLine(String.Format(“状态:{0}消息:{1}

”,Results.Status,Results.ErrorMessage)) ErrorsStringBuilder.AppendLine(String.Format(“失败:{0}总计:{1}

”,Results.FailedCount,Results.TotalCount)) ErrorsStringBuilder.AppendLine(“批处理#:

”&Results.BatchNumber) ErrorsStringBuilder.AppendLine()错误 ErrorsStringBuilder.AppendLine(个别错误:

) ErrorsStringBuilder.AppendLine()错误 对于每个失败的记录。。。。。。。 ErrorsStringBuilder.AppendLine(String.Format(“失败记录ID:{0}消息:{1}

”,FailedRecord.ID,FailedRecord.ErrorText)) 下一个
由于它显示为一条长线,您的电子邮件很可能设置为显示为HTML,而不是纯文本。在HTML中,换行符必须使用


您可以尝试在代码末尾添加HTML换行符。

如果您想在电子邮件正文中使用HTML格式,将ErrorsStringBuilder输出包装在
标记中,以保留空格和换行符,并使用固定宽度字体来保持格式。

set
mail.IsBodyHtml=false在你的vb.net代码中它对你有用吗?
<html>
<body>
<p>Hi,</p>

<p>How are you?</p>
</body>
</html>
Hi,

How are you?
Dim ErrorsStringBuilder As New StringBuilder
ErrorsStringBuilder.AppendLine(String.Format("<p>Status : {0}  Message : {1}</p>", Results.Status, Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format("<p>Failed : {0}  Total : {1}</p>", Results.FailedCount, Results.TotalCount))
ErrorsStringBuilder.AppendLine("<p>Batch #: </p>" & Results.BatchNumber)
ErrorsStringBuilder.AppendLine()
ErrorsStringBuilder.AppendLine("<p>Individual Errors:</p>")
ErrorsStringBuilder.AppendLine()
For Each FailedRecord .......
  ErrorsStringBuilder.AppendLine(String.Format("<p>Failed Record ID : {0}  Message : {1}</p>", FailedRecord.ID, FailedRecord.ErrorText))
Next