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

ASP.NET Core 9为何移除importmap?如何保留且不禁用ScriptTagHelper?

ASP.NET Core 9中保留importmap脚本的解决方案

在新建的ASP.NET Core 9应用或从.NET 8升级的项目中,添加到Views/Shared/_Layout.cshtml里的importmap脚本会被自动移除:

<script type="importmap">
  {
    "imports": {
        "axios": "/js/axios.min.js",
        "axios-retry": "/js/axios-retry.js",
        "is-retry-allowed": "/js/is-retry-allowed.js"
    }
  }
</script>

在Chrome开发者工具的Sources面板中,.NET 8应用能正常显示该脚本,但.NET 9中完全看不到。经排查问题根源是ScriptTagHelper,虽然全局移除该TagHelper可以解决问题,但不想永久禁用它的其他功能。

解决方法

  • 给目标script标签添加asp-ignore属性:在importmap脚本标签上添加asp-ignore="true",ScriptTagHelper会跳过对这个标签的处理,脚本即可正常保留:
<script type="importmap" asp-ignore="true">
  {
    "imports": {
        "axios": "/js/axios.min.js",
        "axios-retry": "/js/axios-retry.js",
        "is-retry-allowed": "/js/is-retry-allowed.js"
    }
  }
</script>
  • 局部控制TagHelper作用范围(可选):如果不想使用asp-ignore属性,也可以在包含该importmap的视图文件中,先临时移除ScriptTagHelper,写完importmap后再重新添加,这样只会影响当前视图的局部范围,不干扰其他页面的TagHelper功能:
@removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers

<script type="importmap">
  {
    "imports": {
        "axios": "/js/axios.min.js",
        "axios-retry": "/js/axios-retry.js",
        "is-retry-allowed": "/js/is-retry-allowed.js"
    }
  }
</script>

@addTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:03:14