2017-03-03 32 views
0

我有这个电子邮件(部分):如何格式化这种文字在ASP.NET MVC

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-家庭:verdana; \“\ u003e你好,古德曼女士,

我该如何格式化这种文本,并显示他作为HTML格式的最终​​用户特德?

谢谢!

+0

乍一看,它看起来像一个不少,这些都是Unicode字符,它也像你公布的是不完整的。你会想读取字符串,并转换unicode在这一点上,我猜它已经是一个html字符串 – GregH

+0

对不起,只发布了一部分,但它是一种保密的电子邮件的内容,但感谢您的想法! –

回答

0

那么,首先你错过了一个开头\(可能在复制/粘贴中丢失)。但基本上,创建一个html元素以将其保持:使用

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:

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

那么字符串加载到一个JavaScript串

$('#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> 
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); 
    } 
} 
+0

我有这样的: '@foreach(var item in Model) { var body = item.BodyHTML; var stepa = System.Web.HttpUtility.HtmlDecode(body.ToString()); @ Html.Raw(stepa) }' 有什么问题吗?总是返回相同的字符串。 –

+0

您需要在控制器操作上放置一个断点,并查看实际提供给视图的内容。没有办法根据该片段说出问题所在(它应该可以工作)。 –