如何在ASP.NET MVC中格式化这种文本

时间:2017-03-03 20:38:34

标签: html css asp.net asp.net-mvc

我有这个(部分)电子邮件:

STYLE = \“text-align:LEFT; \”\ u003e \ n \ u003cFONT STYLE = \“letter-spacing:0pt; color:#0B333C; font-size:10pt; font -family:verdana; \“/ \ u003e \ n \ u003c / P \ u003e \ n \ u003cP STYLE = \”text-align:LEFT; \“\ u003e \ n \ u003cFONT STYLE = \”letter-spacing:0pt;颜色:#0B333C; font-size:10pt; font-family:verdana; \“/ \ u003e \ n \ u003c / P \ u003e \ n \ u003cP STYLE = \”text-align:LEFT; \“\ u003e \ n \ u003cFONT STYLE = \“letter-spacing:0pt; color:#0B333C; font-size:10pt; font-family:verdana; \”\ u003eHello Goodman女士,

如何格式化此类文本并将其作为HTML格式显示给最终用户?

谢谢!

2 个答案:

答案 0 :(得分:0)

好吧,首先你错过了一个开头\(可能在复制/粘贴中丢失了)。但基本上,创建一个html元素来保存它:

<div id="message"></div>

然后将字符串加载到javascript字符串中:

var str = '\u003cDIV\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/\u003e\n \u003c/P\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/\u003e\n \u003c/P\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"\u003eHello Ms. Goodman,';

最后使用jQuery将其推入容器:

$('#message').html(str);

我不确定这是如何从服务器传入的,所以我无法就此提出建议,但这个基本想法应该有效。

字符串的结果是

<div>
   <p style="text-align: LEFT; ">
      <font style="letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; "></font>
   </p>
   <p style="text-align: LEFT; ">
      <font style="letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; "></font>
   </p>
   <p style="text-align: LEFT; ">
      <font style="letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; ">Hello Ms. Goodman,</font>
   </p>
</div>

答案 1 :(得分:0)

使用HttpUtilityWebUtility(取决于您是否希望依赖System.Web)。

这是一个单元测试(使用NUnit),显示它是如何工作的:

using System.Net;
using NUnit.Framework;

[TestFixture]
public class UnitTest1
{
    [Test]
    public void TestMethod1()
    {
        string original = "\u003cDIV\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/\u003e\n \u003c/P\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/\u003e\n \u003c/P\u003e\n \u003cP STYLE=\"text-align: LEFT; \"\u003e\n \u003cFONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"\u003eHello Ms. Goodman,";
        string expected = "<DIV>\n <P STYLE=\"text-align: LEFT; \">\n <FONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/>\n </P>\n <P STYLE=\"text-align: LEFT; \">\n <FONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \"/>\n </P>\n <P STYLE=\"text-align: LEFT; \">\n <FONT STYLE=\"letter-spacing: 0pt; color: #0B333C; font-size: 10pt; font-family: verdana; \">Hello Ms. Goodman,";
        string actual = null;

        actual = WebUtility.HtmlDecode(original);

        Assert.AreEqual(expected, actual);
    }
}