力ASP.Net MVC包呈现在一个特定的顺序的JavaScript文件 [英] Force ASP.Net MVC Bundle to render the javascript files in a certain order

查看:128
本文介绍了力ASP.Net MVC包呈现在一个特定的顺序的JavaScript文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个ASP.Net MVC 4应用程序和使用打包和minifiction渲染风格和脚本文件。

我有一个脚本文件(文件A )在另一个文件(文件B ),其通话功能,当我使用
@ Scripts.Render()方法之前的链接标签文件A >文件B 所以它触发一个错误,并且脚本无法正常工作。

有没有办法强迫 @ Script.Render()渲染链接标签在一定的顺序,而无需使用为每个文件单独捆绑????

修改

我使用 IncludeDirectory 方法包括该文件夹中的所有脚本文件

 公共类BundleConfig
{
    公共静态无效RegisterBundles(BundleCollection包)
    {
        bundles.Add(新ScriptBundle(〜/包/ JS)。IncludeDirectory(
                    〜/脚本/ JS,
                    * .js文件));
    }
}
 

解决方案

自己写的订购者的达林季米特洛夫在这个问题的答案:<一href="http://stackoverflow.com/questions/11979718/how-can-i-specify-an-explicit-scriptbundle-include-order">How我可以指定一个明确的ScriptBundle包括订单?

 公共类MyBundleOrderer:IBundleOrderer
{
    公共虚拟的IEnumerable&LT; FileInfo的&GT; OrderFiles(BundleContext的背景下,IEnumerable的&LT; FileInfo的&GT;文件)
    {
        //任何订货这里的逻辑

        返回的文件;
    }
}
 

I am working on an ASP.Net MVC 4 application and using Bundling and minifiction to render styles and script files.

I have a script file (File A) that call function in another file (File B) , when I am using
@Scripts.Render() method it render link tag for File A before File B so it fire an error and the script not work correctly.

Is there any way to force @Script.Render() to render link tags in certain order without using separate bundle for each file????

EDIT

I am using IncludeDirectory method to include all script files in that folder

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/js").IncludeDirectory(
                    "~/Scripts/js",
                    "*.js"));
    }
}

解决方案

Write your own orderer as Darin Dimitrov answer in this question: How can I specify an explicit ScriptBundle include order?

public class MyBundleOrderer : IBundleOrderer
{
    public virtual IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
    {
        //any ordering logic here

        return files;
    }
}

这篇关于力ASP.Net MVC包呈现在一个特定的顺序的JavaScript文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆