Comment ajouter un saut de ligne en C#

la programmation


J’ai une certaine logique derrière un formulaire Web que je construis. La logique détermine si un utilisateur a saisi une valeur valide pour le champ obligatoire. Code ci-dessous :

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";
         }

Le problème que j’ai est que le operationResult.Message renvoie :

“Un emplacement est requis dans le cadre de l’entrée. Une description du type de connexion est requise. Veuillez saisir une description pour la fréquence de changement de mot de passe”

Je voudrais ajouter un saut de ligne après chaque message d’erreur individuel. Avez-vous des idées sur la façon de procéder? (Veuillez noter que le code ci-dessus fonctionne correctement si 1 champ n’est pas saisi mais devient plus difficile à lire si 2 champs ou plus ne sont pas saisis.)

Solution 1

Solution 2

Solution 5

Deux façons:
1. Gardez les messages individuels séparés le plus longtemps possible, puis combinez-les une fois à « la fin » :

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. Utilisez 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();

Solution 6

Ce que les solutions précédentes ont manqué, c’est le commentaire “un formulaire Web”. Cela suggère que vos messages sont générés dans un document HTML.

HTML ignore les sauts de ligne et la plupart des espaces. Pour forcer l’affichage du message sur plusieurs lignes, vous devrez utiliser un <br> étiqueter[^].

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);
}

Solution 7

Même si cela fait un moment que je n’ai pas posté cette question. J’ai pensé publier ma solution à des fins futures.

Vous pouvez ajouter le “

” syntaxe entre guillemets. À titre d’exemple, j’ai publié le code exact qui fonctionnait pour ma situation.

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";
         }

Je pense que Richards était le plus proche de ma solution, mais il y avait des différences. merci pour les réponses!

コメント

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