带有额外属性的ScriptBundle

4
public class BundleConfig
{
    // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/require").Include(
                        "~/Scripts/require.js"));
       ....

在_Layout.cshtml中

@Scripts.Render("~/bundles/require")

如果启用了 EnableOptimizations = false,则它将渲染为:

<script src="/Scripts/require.js"></script>

但是我想添加一个属性

<script src="/Scripts/require.js" data-main="/Scripts/main"></script>

我该怎么做呢?


我听说一些MVC的alpha更新添加了RenderFormat方法,但如果有其他方法的话,我宁愿找另一种方式。 - iLemming
2个回答

2

我曾通过配置不带"data-main"属性的requirejs来解决类似问题。因此,一开始我的代码如下所示:

<script src="app/rconfig.js"></script>
<script src="plugin/requirejs/require.js" data-main="app/main.js"></script>

接下来,让我们删除 data-main 属性:
<script src="app/rconfig.js"></script>
<script src="plugin/requirejs/require.js"></script>
<script>
    require.config({
        baseUrl: "app"
    });
    require(['app/main.js']);
</script>

接下来,我已经将最后一个“script”内容放入文件中:

<script src="app/rconfig.js"></script>
<script src="plugin/requirejs/require.js"></script>
<script src="app/rdatamain.js"></script>

完成后,我已将这三个文件放入捆绑包中。

1
如果您不喜欢RenderFormat,您可以在ScriptsHelper上全局更改DefaultTagFormat,但是这个属性将会在您调用Scripts.Render的任何地方都显示出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接