Saltar al contenido

¿Por qué StringBuilder.AppendLine no agrega una nueva línea con algunas cadenas?

Solución:

Sé que la pregunta es antigua y se marcó como respondida, pero pensé en agregar esto aquí en caso de que alguien más se encuentre con esto, ya que es el primer resultado en Google para StringBuilder.AppendLine() no funciona.

Tuve el mismo problema y resultó ser un problema de Outlook. Outlook cambia el formato de los correos electrónicos basados ​​en texto eliminando saltos de línea adicionales. Puede hacer clic en “Eliminamos saltos de línea adicionales en este mensaje -> Restaurar saltos de línea” en el encabezado del correo electrónico individual, o cambiar la configuración que hace este pequeño truco desagradable "Options->Mail->Message Format->Remove extra line breaks in plain text messages"

La solución alternativa (ya que no puede controlar la configuración en todos los posibles objetivos de correo electrónico) que encontré aquí Formato del boletín y el problema Eliminar saltos de línea adicionales. Básicamente, si agrega dos caracteres de espacio en blanco al comienzo de cada línea, Outlook no volverá a formatear el correo electrónico.

Aquí hay un método de extensión para ayudar (el nombre del método es un poco detallado, así que cámbielo a su gusto :))

namespace System.Text
{
    public static class StringBuilderExtensions
    {
        public static void AppendLineWithTwoWhiteSpacePrefix(this StringBuilder sb, string value)
        {
            sb.AppendFormat("{0}{1}{2}", "  ", value, Environment.NewLine);
        }

        public static void AppendLineWithTwoWhiteSpacePrefix(this StringBuilder sb)
        {
            sb.AppendFormat("{0}{1}", "  ", Environment.NewLine);
        }
    }
}

En lugar de

sbUser.AppendLine();

Intenta usar

sbUser.Append(Environment.NewLine);

No tengo idea de por qué esto funciona …

usar Environment.NewLine

sbUser.AppendLine("Please find below confirmation of your registration details. If any of these details are incorrect, please email [email protected]");
sbUser.AppendLine(Environment.NewLine);
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(Environment.NewLine);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *