2011-09-18 3 views
0

J'ai un formulaire de contact qui envoie un courriel.Formater le message du formulaire de contact

Mais si je tape un long message dans la zone de texte et après avoir cliqué sur Soumettre, dans mon courriel ce message s'affiche en une seule ligne.

par exemple, si je tape que dans la zone de texte du message:

My super Mesasge 
My Mesasge Mesasge 

From Test. 

Dans ma boîte e-mail, ce sera comme:

My super Mesasge My Mesasge Mesasge From Test. 

Pourquoi la mise en forme ("/ r/n") se perdre et comment pourrais-je garder le formatage de ce message?

MISE À JOUR: J'utilisé AntiXSS.4.0.1 par exemple: model.Message: "sdfsdf \ r \ nsdfsdf \ r \ nsdfsdfsdafsdfa"

Je l'ai fait:

model.Message = model.Message.Replace("\r\n", "<br />"); 
    //result: model.Message="sdfsdf<br />sdfsdf<br />sdfsdfsdafsdfa" 

Than:

 model.Message = Sanitizer.GetSafeHtmlFragment(model.Message); 
    //result: model.Message="sdfsdf<br>\r\nsdfsdf<br>\r\nsdfsdfsdafsdfa" 

Alors pourquoi Sanitizer.GetSafeHtmlFragment a-t-il été ajouté? et il est également changé <br /> à <br>

Répondre

0

Cela dépendra de la façon dont vous envoyez l'email. Si vous utilisez HTML (message.IsBodyHtml), vous devez remplacer \r\n par <br/> lors du remplissage du message.Body.

+0

question mise à jour – jason

+0

@ Jason, je ne sais pas pourquoi le ' La méthode GetSafeHtmlFragment' ajoute '\ r \ n' pour chaque'
'mais cela ne devrait poser aucun problème car il est toujours valide html. Les nouvelles lignes n'ont pas d'importance en html et si vous envoyez l'email avec 'IsBodyHtml = true' cela fonctionnera comme prévu (c'est-à-dire que les nouvelles lignes seront conservées comme dans la zone de texte originale). –

1

La seule chose que je peux penser, est que le format de votre e-mail est en HTML, de sorte que le l'NewLine doit être converti en <p></p> tag ou <br />

Questions connexes