Razor <;p>;正在将标记添加到内联宏

Razor <;p>;正在将标记添加到内联宏,razor,tinymce,umbraco,Razor,Tinymce,Umbraco,我正在使用umbraco 4.7。我已经创建了一个razor宏来在我的富文本编辑器中插入电话号码。每当我在RTE中添加宏时,都会在宏周围自动添加标记。我试图通过编辑html来删除额外的标记,但只要单击“保存”,就会再次添加标记。我试着安装这个 但这并没有解决我的问题。我尝试过设置False并检查强制的_root_块:“p”,但这些都不能解决问题 有没有解决这个问题的建议?这是一个常见的问题,RTE为维护网页的完整性带来了许多麻烦。整个“我们是否应该包含段落标记?”问题是一个困难的问题,因为只插入

我正在使用umbraco 4.7。我已经创建了一个razor宏来在我的富文本编辑器中插入电话号码。每当我在RTE中添加宏时,都会在宏周围自动添加标记。我试图通过编辑html来删除额外的
标记,但只要单击“保存”,就会再次添加
标记。我试着安装这个

但这并没有解决我的问题。我尝试过设置
False
并检查强制的_root_块:“p”,但这些都不能解决问题


有没有解决这个问题的建议?

这是一个常见的问题,RTE为维护网页的完整性带来了许多麻烦。整个“我们是否应该包含段落标记?”问题是一个困难的问题,因为只插入一段文字时可以删除它们,但如果内容编辑器决定添加更多,而您正在剥离第一个和最后一个P标记,该怎么办

请记住,站点的CSS始终需要支持您选择的任何内容,最好的选择是编辑配置文件,使TinyMCE忽略p标记。为此,需要编辑/config/tinyMceConfig.config文件。下面有两个有趣的部分。包含允许的HTML标记,当然包含相反的内容

如果查看逗号分隔值的有效元素列表,您应该会看到一个值#p[id | style | dir | class | align]。注意这是如何格式化的,您应该能够将其移动到无效元素部分。将它放在默认的字体标记之后,当然在它前面加一个逗号

重新启动IIS并尝试在RTE中输入内容。当您发布并查看输出时,您应该看到RTE中的字符串已删除段落标记

最后一个选项是从输出中删除段落标记。有很多新的方法可以做到这一点,但对于您的剃须刀版本,我会使用以下方法:

@Html.Raw(umbraco.library.RemoveFirstParagraphTag(value.ToString())) @Html.Raw(umbraco.library.RemoveFirstParagraphTag(value.ToString())) 这一想法包含在本文中

祝你好运,如果你成功了,请告诉我们。

使用此jquery

$('p').each(function() {
    var $this = $(this);
    if($this.html().replace(/\s|&nbsp;/g, '').length == 0)
        $this.remove();
});