将Html转换为纯文本

问题描述 投票:0回答:3

我使用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; }
}
javascript html asp.net-mvc tinymce
3个回答
0
投票

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


0
投票

HTML有一些字符对HTML来说意味着特殊的东西。具体来说,打开和关闭标签(“<”和“>”),当放在一起时,意味着它们之间的内容指定一个元素。如果这些字符不适用于HTML标记,则HTML解析器会出现问题。当HTML文件想要表示大于或小于字符的字面值时,它会分别用“>”和“<”替换它们来“编码”它们。浏览器和其他HTML消费产品知道这两个字符串代表“转义”的HTML字符。

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


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();

    }
© www.soinside.com 2019 - 2024. All rights reserved.