You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC:如何取消HTML标签自动编码实现正常解析?

解决HTML标签被浏览器编码为纯文本的问题

你的问题核心是前端渲染时自动转义了HTML内容,导致标签被当成普通文本显示。以下是不同技术栈的解决方案:

原生JavaScript

如果用原生JS渲染内容,避免使用innerText或textContent(这两个会把HTML转义为纯文本),改用innerHTML直接插入HTML:

// 错误写法:会转义HTML
document.getElementById('content').innerText = yourSqliteData;

// 正确写法:让浏览器解析HTML标签
document.getElementById('content').innerHTML = yourSqliteData;

Vue.js

Vue默认的双大括号{{ }}会自动转义HTML,需要使用v-html指令:

<!-- 错误写法:标签被转义 -->
<div>{{ yourContent }}</div>

<!-- 正确写法:渲染HTML -->
<div v-html="yourContent"></div>

React.js

React的JSX会自动转义内容,需使用dangerouslySetInnerHTML属性(注意名称里的"dangerously"提示了安全风险):

// 错误写法:标签被转义
<div>{yourContent}</div>

// 正确写法:渲染HTML
<div dangerouslySetInnerHTML={{ __html: yourContent }}></div>

Angular

Angular默认插值会转义HTML,使用[innerHTML]绑定属性:

<!-- 错误写法:标签被转义 -->
<div>{{ yourContent }}</div>

<!-- 正确写法:渲染HTML -->
<div [innerHTML]="yourContent"></div>

重要安全提醒

如果你的HTML内容来自不可信的用户输入(比如用户提交的评论),直接渲染未过滤的HTML会导致XSS攻击。建议使用DOMPurify这类库先净化内容,再进行渲染:

// 原生JS示例:先净化再渲染
import DOMPurify from 'dompurify';
const cleanContent = DOMPurify.sanitize(yourSqliteData);
document.getElementById('content').innerHTML = cleanContent;

内容的提问来源于stack exchange,提问作者user26426767

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:04:56