.NET Core中TinyMCE编辑器内容显示HTML标签问题求助
问题原因分析及解决方向
Razor视图默认HTML编码导致标签显示
.NET Core的Razor引擎为防御XSS攻击,默认会对输出字符串做HTML编码。比如数据库中存储的<p>测试内容</p>,直接用@Model.EditorContent输出时会被转译为<p>测试内容</p>,浏览器会把这些转义字符当作文本展示,而非解析成HTML标签。解决时需用@Html.Raw(Model.EditorContent)告知Razor跳过编码,直接输出原始HTML。内容保存阶段出现双重转义
若前端用jQuery提交TinyMCE内容时未正确处理数据,或后端接收环节额外添加了转义逻辑,会导致数据库中存储的是已转义内容(比如<p>变为<p>,双引号变为")。这种情况下即便使用Html.Raw,显示的仍是转义后的实体字符。需排查:- 前端提交是否用了
JSON.stringify或其他自动转义方法,导致内容被重复转义; - 后端接收模型时,是否存在自定义转义逻辑,或模型属性特性触发了自动转义。
- 前端提交是否用了
TinyMCE实体编码配置问题
TinyMCE默认的entity_encoding设置可能会将特殊字符(如双引号、尖括号)转译为HTML实体。若编辑器配置中entity_encoding设为"named"或"numeric",输出内容本身就包含转义后的实体,存入数据库后自然会显示这些实体字符。可将配置改为entity_encoding: "raw",让TinyMCE输出原始HTML内容。
内容的提问来源于stack exchange,提问作者user11112155
相关产品推荐
相关产品推荐

