我使用了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; }
}
答案 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.HtmlEncode和HttpUtility.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();
}