将Html转换为纯文本

时间:2014-05-03 23:30:54

标签: javascript html asp.net-mvc tinymce

我使用了tinymce编辑器来进行富文本编辑。我的问题是当我保存文本时,它以html格式保存,如

<p> Hello world<p/>

我需要一个纯文本,即上面例子中的“Hello World”。 我搜索谷歌,我发现像HTML编码。我不知道那是什么。我是这个概念的新手。我使用的是asp.net MVC 5,我使用了tinymce:

模型是

namespace ProjectNSAS.Models{
public class AboutModels
{
    [Key]
    public int Id { get; set; }
    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string Content { get; set; }
}

3 个答案:

答案 0 :(得分:0)

它可能不是最好的帮助,但.txt文件也是一种纯文本形式。如果您只是想查看代码而不是运行它,请尝试使用.txt。

答案 1 :(得分:0)

HTML有一些字符对HTML有特殊意义。具体而言,打开和关闭标签(&#34;&#34;&#34;&gt;&#34;),当放在一起时,意味着它们之间的内容指定了一个元素。如果你有这些字符而不是HTML标签,那么HTML解析器就会遇到麻烦。当HTML文件想要表示字符大于或小于字符时,它会编码&#34;将它们替换为&#34;&gt;&#34;和&#34;&lt;&#;;分别。浏览器和其他HTML消费产品知道这两个字符串代表&#34;转义&#34; HTML字符。

.NET有一个用于转义/取消HTML字符串的小型库 - 它是HttpUtility类。具体来说,请查看HttpUtility.HtmlEncodeHttpUtility.HtmlDecode

答案 2 :(得分:0)

在编辑器提供getcontent方法的过程中,集成不提供我可以轻松找到的访问点。但实施起来相当简单。

TinyMCE具有以下代码将其html转换为文本:

在:jquery.tinymce.js:

... t.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g, "") ...

这基本上只是一个javascript正则表达式替换,在你的C#代码中做同样的事情,然后解码html。

这是一个示例控制器:

public class TinyController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(TinyMCEModelJQuery model)
    {
        var foo = model.Content;
        Regex regex = new Regex("<(?:\"[^\"]*\"|'[^']*'|[^'\">])*>");
        var htmlPlainText = regex.Replace(foo, string.Empty);
        var plainText = HttpUtility.HtmlDecode(htmlPlainText);
        // do what you need with plainText

        return View();

    }