当我们像这样将捆绑包添加到ASP.NET MVC捆绑包集合中时:
public static RegisterBundles(BundleCollection bundles)
{
bundles.Add( new ScriptBundle("~/bundle/foo")
.Include("~/Scripts/foo.js"));
}
并在这样的视图中渲染它:
@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 Framework版本4.6.1的ASP.NET MVC 5.2.4。
答案 0 :(得分:1)
我假设您安装了最新的Microsoft.AspNet.Web.Optimization
软件包,因此可以使用Scripts.RenderFormat()
在生成的type
标签上添加<script>
属性:
@Scripts.RenderFormat("<script src='{0}' type='module'></script>", "~/bundle/foo")
或者您可以利用包含helper方法的helper类来渲染<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视图页面中使用它,如下所示:
@ScriptHelpers.RenderWithTypeAttribute("~/bundle/foo")
参考:
How to render Scripts/Styles bundles in the custom format in ASP.NET MVC?
相关问题: