从联系表单格式化消息

时间:2011-09-18 09:05:45

标签: asp.net-mvc-3

我有发送电子邮件的联系表格。

但是,如果我在文本区域输入长信息并在点击提交后,在我的电子邮件中显示单行显示的消息。

例如,如果我在消息文本区域中键入:

My super Mesasge 
My Mesasge Mesasge

From Test.

在我的电子邮箱中,它会像:

My super Mesasge My Mesasge Mesasge From Test.

为什么格式化(“/ r / n”)会丢失,如何保留该格式的格式?

更新: 我使用了AntiXSS.4.0.1 例如:model.Message:“sdfsdf \ r \ nsdfsdf \ r \ nsdfsdfsdafsdfa”

我做到了:

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

比:

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

那么为什么Sanitizer.GetSafeHtmlFragment会添加\ r \ n回来?它也被<br />更改为<br>

2 个答案:

答案 0 :(得分:1)

我唯一能想到的是,您的电子邮件格式是HTML格式,因此NewLine应该转换为<p></p>代码或<br />

答案 1 :(得分:0)

这取决于您发送电子邮件的方式。如果您使用HTML(message.IsBodyHtml),那么在填充\r\n时,您需要将<br/>替换为message.Body