Почему C # .net удаляет символы новой строки, когда я делаю замену, и как я могу остановить это? - PullRequest
2 голосов
/ 25 октября 2011

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

Я разрешаю использовать токены в качестве заполнителей для информации, относящейся к этому сообщению.

Если я вообще не касаюсь местозаполнителей, то электронное письмо отправляется очень хорошо с разрывами строк точно в том виде, в каком они находятся в текстовом поле (электронное письмо отправляется в виде простого текста).

Однако, когда я начинаю использовать функцию замены, символы новой строки начинают исчезать, и все строки объединяются.

Например.

Body.Replace("%procedure%", CurrentOrder.Description);

Заменит текст% method%, но также удалит символ новой строки в конце строки. Даже если новая строка не сразу после заменяемого текста.

Есть идеи?

редактирование:

Пока я просто заменяю "\ n" на "<br />" и отправляю электронное письмо в формате HTML. Я предпочел бы сохранить его в виде простого текста, так как у меня нет контроля над получателями.

РЕДАКТИРОВАТЬ 2: Кажется, это проблема самого Outlook, а не электронной почты. Я только что просмотрел ту же самую электронную почту в gmail, и формат был правильным.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Outlook удаляет новые строки, если строка не заканчивается двумя пробелами.

Если вы тестируете электронные письма для учетной записи, которая использует Outlook, попробуйте добавить два пробела перед новыми строками и посмотрите, исправит ли это.

0 голосов
/ 25 октября 2011

Если это для HTML, я бы прежде всего заменил новые строки на тэги BR:

String str = str.Replace(Environment.NewLine, "<br/>");

, либо вместо многострочной текстовой области, используйте редактор HTML JQuery или AJAX, либо что-то еще.


Может быть, вы могли бы поменять местозаполнитель (как выше, а затем поменять его?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...