Почему StringBuilder.AppendLine не добавляет новый линия с некоторыми строками?

Я пытаюсь использовать построитель строк для создания тела строки, которая будет использоваться в тексте (не в HTML). ) электронная почта.Тем не менее, некоторые строки (где я включаю динамические данные, новая строка не добавляется, но в некоторых новая строка работает, как предполагалось.

Есть ли что-то основное, чего мне не хватает при использовании класса stringbuilder, или есть что-то еще фундаментальный процесс, который должен происходить?

в приведенном ниже коде:

sbUser.AppendLine("Please find below confirmation of your registration details. If any of these details are incorrect, please email someone@somewhere.com");
sbUser.AppendLine();
sbUser.AppendLine("Selected event : " + ContentPage.FetchByID(int.Parse(ddlEvent.SelectedValue)).PageTitle); 
sbUser.AppendLine("Date of event : " + thisEvent.EventStartDate.ToString("dd MMM yyyy"));
sbUser.AppendLine("==============================================================");
sbUser.AppendLine();

(ContentPage и thisEvent — это пользовательские классы, созданные с использованием Subsonic(v2). PageTitle — это тип вывода строки)

— получить это в качестве вывода:

    Please find below confirmation of your registration details. If any of these details are incorrect, please email someone@somewhere.com

Selected event : My Event Date of event : 16 Sept 2012 ==============================================================

как вы можете видеть, все, что находится после 3-й строки в коде, заставляет все идти в одну строку.

однако дальше код, который я использую:

sbRR.AppendLine("First name : " + txtFirstname.Text.Trim());
sbRR.AppendLine("Surname : " + txtSurname.Text.Trim());
etc,

и все они отображаются в отдельных строках правильно. Я могу не понимаю, почему это происходит.

письмо составлено как таковое

mailMessage.Body = sbUser.ToString() + sbRR.ToString();


добавление следующего кода:

sbUser.AppendLine("Selected event : " + ContentPage.FetchByID(int.Parse(ddlEvent.SelectedValue)).PageTitle + Environment.NewLine); 
sbUser.AppendLine("Date of event : " + thisEvent.EventStartDate.ToString("dd MMM yyyy") + Environment.NewLine);

приводит к следующему выводу:

Selected event : My Event

Date of event : 16 Sept 2012

==============================================================

что, я полагаю, работает, за исключением того, что добавлены 2 новые строки (AppendLine и Environment.NewLine). кажется, что извлечение данных прямо из базы данных в построитель строк, похоже, искажает окончание строки. Даже если я добавлю текст после извлечения из базы данных, он все равно останется на одной строке.

ОБНОВЛЕНИЕ

выполнение StringBuilder.Append("blah"+Environment.NewLine) дает правильный результат, однако я до сих пор не понимаю, почему это работает, и .AppendLine("blah"+)не работает.

31
задан kolin 22 June 2012 в 12:26
поделиться