gpt4 book ai didi

javascript - 如何让 ASP.NET MVC 包管理器呈现 type = "module"属性的脚本标记?

转载 作者:行者123 更新时间:2023-12-01 16:04:44 35 4
gpt4 key购买 nike

当我们将一个包添加到 ASP.NET MVC 包集合时,如下所示:

public static RegisterBundles(BundleCollection bundles)
{

bundles.Add( new ScriptBundle("~/bundle/foo")
.Include("~/Scripts/foo.js"));
}

并在这样的 View 中渲染它:
@Scripts.Render("~/bundle/foo")

它被渲染成一个普通的 javascript 文件包含 <script>像这样:
<script src = "/Scripts/foo.js"></script>

但是我的 foo.js 是一个 ES 6 模块,所以我希望它像这样加载:
<script src = "/Scripts/foo.js" type = "module"></script>

没有输入 <script>标记自己,我如何真正让 ASP.NET MVC 包类以这种方式呈现它?

我正在使用面向 .NET 框架版本 4.6.1 的 ASP.NET MVC 5.2.4。

最佳答案

我假设你有最新的 Microsoft.AspNet.Web.Optimization已安装软件包,因此您可以使用 Scripts.RenderFormat() 添加type生成的属性 <script>标签:

@Scripts.RenderFormat("<script src='{0}' type='module'></script>", "~/bundle/foo")

或者您可以使用包含辅助方法的辅助类来呈现 <script>某些捆绑包具有附加属性的标签:
public static class ScriptHelpers
{
public static IHtmlString RenderWithTypeAttribute(params string[] paths)
{
return System.Web.Optimization.Scripts.RenderFormat(@"<script src=""{0}"" type=""module""></script>", paths);
}
}

然后在 Razor View 页面中使用它,如下所示:
@ScriptHelpers.RenderWithTypeAttribute("~/bundle/foo")

引用:

How to render Scripts/Styles bundles in the custom format in ASP.NET MVC?

相关问题:

Set Script Type in MVC4 Script Bundle

关于javascript - 如何让 ASP.NET MVC 包管理器呈现 type = "module"属性的脚本标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635898/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com