Я пытаюсь использовать stringbuilder для создания тела строки, которое будет использоваться в текстовом (а не HTML) письме. Однако некоторые строки (где я включают динамические данные, новая строка не добавляется, но в некоторых новостях работает так, как предполагалось).
Есть ли что-то базовое, которое я пропускаю при использовании класса stringbuilder или есть еще один фундаментальный процесс, который должен произойти?
в приведенном ниже коде:
sbUser.AppendLine("Please find below confirmation of your registration details. If any of these details are incorrect, please email [email protected]");
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 [email protected]
Selected event : My Event Date of event : 16 Sept 2012 ==============================================================
как вы можете видеть, все после третьей строки в коде делает все в одной строке.
однако, далее в коде, который я использую:
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). кажется, что вытащить данные прямо прямо из базы данных в построитель строк, кажется, возится с окончанием строки. Даже если я добавляю текст после выталкивания базы данных, он все равно остается на одной строке.
UPDATE
делать
StringBuilder.Append("blah"+Environment.NewLine)
дает правильный результат, однако я все еще не понимаю, почему это работает, а .AppendLine("blah"+<database content>)
не работает.