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

C#循环中经过HTML编辑的文本如何在页面上显示为完整格式化内容

问题原因

Razor视图引擎默认会对所有@开头的字符串输出做HTML编码,目的是防御XSS跨站脚本攻击,所以你存储的HTML标签会被转义成<、>这类转义字符,不会被浏览器识别为HTML标签渲染。

解决方案

方案1:使用Html.Raw()方法(最常用)

直接在视图中用Html.Raw()包裹要输出的内容,告诉Razor不需要对这段内容做编码,直接输出原始HTML:

@foreach (var item in Model)
{
    <div>@Html.Raw(item.content)</div>
}

方案2:后台封装为IHtmlString类型

如果你不想在视图中重复写Html.Raw(),可以在后台构造Model的时候,把content字段处理为IHtmlString类型:

// 后台构造Model示例
item.content = new HtmlString(原始HTML字符串);

视图中可以直接输出,不需要额外处理:

@foreach (var item in Model)
{
    <div>@item.content</div>
}

安全注意事项

如果content字段的内容来自用户提交的不可信输入,直接输出原始HTML会存在XSS安全风险,建议在输出前先对HTML内容做净化处理,过滤掉<script>、<iframe>、onclick等危险标签和属性,避免恶意脚本执行。

内容的提问来源于stack exchange,提问作者a. 1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:09:04