¿Cómo agregar un salto de línea en C#?

programación


Tengo cierta lógica detrás de un formulario web que estoy creando. La lógica maneja si un usuario ingresó un valor válido para el campo requerido. Código a continuación:

C#
var operationResult = new BO.OperationResult();

         // Physical Location Required
         if (physicalLocationDesc.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += "A location is required as part of the entry";
         }
         // Type of Connection Desc. Required
         if (typeOfConnectionID.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += "A description for the connection type is required.";
         }
         // Password change frequency desc. required
         if (passwordChangeFrequency.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += "Please enter a description for the Password Change Frequency";
         }

El problema que tengo es que el resultado de operación.Message regresa:

“Se requiere una ubicación como parte de la entrada. Se requiere una descripción para el tipo de conexión. Ingrese una descripción para la frecuencia de cambio de contraseña”

Me gustaría agregar un salto de línea después de cada mensaje de error individual. ¿Alguna idea sobre cómo hacer esto? (Tenga en cuenta que el código anterior funciona bien si no se ingresa 1 campo, pero se vuelve más difícil de leer si no se ingresan 2 o más campos).

Solución 1

Solución 2

Solución 5

Dos caminos:
1. Mantenga el mensaje individual separado el mayor tiempo posible y luego combínelos una vez al “final”:

C#
var operationResult = new BO.OperationResult();
 List<string> messages = new List<string>();
// Physical Location Required
if (string.IsNullOrWhiteSpace(physicalLocationDesc))
{
  operationResult.Successful = false;
  messages.Add("A location is required as part of the entry");
}
// Type of Connection Desc. Required
if (string.IsNullOrWhiteSpace(typeOfConnectionID))
{
  operationResult.Successful = false;
  messages.Add("A description for the connection type is required.");
}
// Password change frequency desc. required
if (string.IsNullOrWhiteSpace(passwordChangeFrequency))
{
  operationResult.Successful = false;
  messages.Add("Please enter a description for the Password Change Frequency");
}
// etc...
operationResult.Message = string.Join(Environment.NewLine, messages);

2. Utilice un StringBuilder:

C#
var operationResult = new BO.OperationResult();
 StringBuilder messages = new StringBuilder();
string sep = string.Empty;
// Physical Location Required
if (string.IsNullOrWhiteSpace(physicalLocationDesc))
{
  operationResult.Successful = false;
  messages.Append(sep).Append("A location is required as part of the entry");
  sep = Environment.NewLine;
}
// Type of Connection Desc. Required
if (string.IsNullOrWhiteSpace(typeOfConnectionID))
{
  operationResult.Successful = false;
  messages.Append(sep).Append("A description for the connection type is required.");
  sep = Environment.NewLine;
}
// Password change frequency desc. required
if (string.IsNullOrWhiteSpace(passwordChangeFrequency))
{
  operationResult.Successful = false;
  messages.Append(sep).Append("Please enter a description for the Password Change Frequency");
  sep = Environment.NewLine;
}
// etc...
operationResult.Message = messages.ToString();

Solución 6

Lo que han omitido las soluciones anteriores es el comentario. “un formulario web”. Eso sugiere que sus mensajes se envían a un documento HTML.

HTML ignora los saltos de línea y la mayoría de los espacios en blanco. Para forzar que el mensaje aparezca en varias líneas, deberá usar a <br> etiqueta[^].

C#
var operationResult = new BO.OperationResult();
var messages = new List<string>(3);

// Physical Location Required
if (physicalLocationDesc.Trim().Length <= 0)
{
    operationResult.Successful = false;
    messages.Add("A location is required as part of the entry");
}
// Type of Connection Desc. Required
if (typeOfConnectionID.Trim().Length <= 0)
{
    operationResult.Successful = false;
    messages.Add("A description for the connection type is required.");
}
// Password change frequency desc. required
if (passwordChangeFrequency.Trim().Length <= 0)
{
    operationResult.Successful = false;
    messages.Add("Please enter a description for the Password Change Frequency");
}

if (messages.Count != 0)
{
    operationResult.Message = string.Join("<br>", messages);
}

Solución 7

Aunque ha pasado un tiempo desde que publiqué esta pregunta. Pensé en publicar mi solución para propósitos futuros.

Puedes agregar el “

” sintaxis entre comillas. Como ejemplo, publiqué el código exacto que funcionó para mi situación.

C#
var operationResult = new BO.OperationResult();
         // Physical Location Required
         if (physicalLocationDesc.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += " <br /> <br /> A location is required as part of the entry";
         }
         // Type of Connection Desc. Required
         if (typeOfConnectionID.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += "<br /> <br />A description for the connection type is required.";
         }
         // Password change frequency desc. required
         if (passwordChangeFrequency.Trim().Length <= 0)
         {
             operationResult.Successful = false;
             operationResult.Message += "<br /><br />Please enter a description for the Password Change Frequency";
         }

Creo que Richards era el que más se acercaba a mi solución, pero había diferencias. gracias por las respuestas!

コメント

タイトルとURLをコピーしました