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

Razor视图中基于条件插入HTML无法正常渲染该如何处理?

问题原因

Razor默认会对动态输出的字符串内容做HTML编码,你直接在三元表达式的返回分支写HTML标签时,Razor会把它当成普通字符串处理,尖括号等特殊字符会被转义为实体编码,自然不会被解析为正常的UI元素。

可用解决方案

方法1:适配原有三元表达式写法,用Html.Raw()包裹HTML内容

Html.Raw()的作用是告诉Razor不需要对这段内容做编码,直接输出原始HTML:

@(item.ID == 0 ? "" : Html.Raw("<i class='fas fa-bus'></i>"))

方法2:改用Razor原生条件判断语法(可读性更高)

如果不需要强行用三元表达式,直接写if判断的写法更直观,也不需要额外处理HTML:

@if (item.ID != 0)
{
    <i class="fas fa-bus"></i>
}

注意事项

如果HTML内容是用户可自定义的,使用Html.Raw()有XSS注入风险,需要自行做好内容校验。如果是固定的业务代码片段,两种写法都可以正常使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:57:02