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

为何Razor的@if语句满足条件却不添加script标签?

Razor视图if条件进入却未生成script标签的排查方向
  • Model.AddThisKey含不可见空白字符:调试器显示有值,但可能存在全角空格、制表符、换行符这类string.IsNullOrWhiteSpace会判定为空白的字符。可以在调试时查看Model.AddThisKey.Length,如果长度大于可见字符数,就说明存在这类不可见字符。
  • Razor语法解析异常:尝试将src的值先赋值给局部变量再使用,避免语法解析冲突:
    @{
        var scriptUrl = Model.AddThisKey;
    }
    @if (!string.IsNullOrWhiteSpace(scriptUrl))
    {
        <script type="text/javascript" src="@scriptUrl"></script>
    }
    
  • 视图输出被过滤拦截:项目中的自定义视图过滤器、Action过滤器,或是HTML编码处理可能会过滤script标签。可以先在if块内输出普通文本标签(如<p>@Model.AddThisKey</p>),查看页面源码确认是否能正常渲染,以此判断是否是script标签被拦截。
  • 调试器步进显示误差:有时调试器的步进会出现视觉误导,实际代码并未进入if块。可以在if块内添加@Html.Raw("<!-- Debug: 已进入if块 -->"),通过查看页面源码确认是否真的执行了if块内的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:28:11