如何在ASP.NET Core视图中正确渲染含HTML标签的内容
ASP.NET Core视图中HTML标签无法正常解析的解决方法
问题情况
在ASP.NET Core Razor视图中渲染包含HTML标签的字段时,出现标签被编码失效的问题:
- 数据示例:description字段值为
dette er<br />beskrivelse - 初始使用代码:
@WebUtility.HtmlDecode(img.Description) - 实际HTML输出:
dette er<br />beskrivelse,换行标签<br>无法生效
问题原因
Razor视图默认会对所有输出内容做HTML编码,以此防范XSS攻击。WebUtility.HtmlDecode仅能解码已编码内容,但Razor在输出解码后的内容时,会再次自动编码,导致HTML标签仍无法正常解析。
解决方法
使用Html.Raw()方法,该方法会通知Razor跳过对指定内容的编码,直接输出原始HTML:
修改后的代码:
@Html.Raw(img.Description)
注意事项
使用Html.Raw()时必须确保内容安全可信。如果内容来自用户提交或外部不可信来源,务必先完成XSS过滤处理,避免安全风险。
内容的提问来源于stack exchange,提问作者SteinTech
相关产品推荐
相关产品推荐

