在MVC4中,如何在Razor文件中创建脚本包

时间:2013-01-16 00:34:19

标签: javascript asp.net-mvc-4 bundle

我正在设置我的MVC4应用程序以使用内置的ASP.Net捆绑(从Squishit转换)。我已经设置了BundleConfig类,并且一切正常,但是对于Razor文件只引用一个JavaScript文件的情况,我认为不需要涉及该配置文件。我宁愿在Razor'Scripts'部分中将脚本添加到BundleTable,然后在那里渲染它。这样,如果我不得不改变BundleConfig文件,我可以很容易地进行小的更改。这就是我所拥有的:

@section Scripts
{
    @{   
        const string bundle = "~/bundles/{myVirtualBundlePath}";
        BundleTable.Bundles.Add(new ScriptBundle(bundle)
            .Include("{myActualJavaScriptFilePath}"));
        Scripts.Render(bundle);
    }
}

虽然这构建正常,但对该捆绑文件的引用永远不会输出到HTML。

我是否需要获得BundleConfig使用的特定BundleCollection的引用?

1 个答案:

答案 0 :(得分:6)

我的(有效)之间的唯一区别是我在脚本块之外添加了bundle。如果这不起作用,请确保它在主捆绑启动中有效,这可能是其他一些问题。

@{ BundleTable.Bundles.Add(new ScriptBundle("~/Scripts/Plugins/highcharts")
                           .Include("~/Scripts/Plugins/highcharts.js")); }
@section Scripts
{    
    @Scripts.Render("~/Scripts/Plugins/highcharts")
    @Scripts.Render("~/Scripts/Views/Charts/transportDelayCharts")
}