Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc mvc捆绑,每个视图一个_Asp.net Mvc_Asp.net Mvc 4_Bundling And Minification - Fatal编程技术网

Asp.net mvc mvc捆绑,每个视图一个

Asp.net mvc mvc捆绑,每个视图一个,asp.net-mvc,asp.net-mvc-4,bundling-and-minification,Asp.net Mvc,Asp.net Mvc 4,Bundling And Minification,我正在与mvc4合作,探索css和javascript的捆绑是如何工作的。我有一个问题需要帮助 对于我呈现的每个页面(视图),我只希望有一个js和css文件。这是该视图所需的多个文件的顶点。根据我所看到的,我可以创建文件包,但我没有看到为每个视图创建文件包的方法 如果有可能实现我概述的目标,有人能帮我解决这个问题吗?请更具体地回答您的问题。让我们看看你试过什么。您必须手动创建每个捆绑包。如果您希望在特定视图上使用捆绑包,请创建这样一个捆绑包,并在视图中指定您将在那里使用该捆绑包,就像您在视图中指

我正在与mvc4合作,探索css和javascript的捆绑是如何工作的。我有一个问题需要帮助

对于我呈现的每个页面(视图),我只希望有一个js和css文件。这是该视图所需的多个文件的顶点。根据我所看到的,我可以创建文件包,但我没有看到为每个视图创建文件包的方法


如果有可能实现我概述的目标,有人能帮我解决这个问题吗?

请更具体地回答您的问题。让我们看看你试过什么。您必须手动创建每个捆绑包。如果您希望在特定视图上使用捆绑包,请创建这样一个捆绑包,并在视图中指定您将在那里使用该捆绑包,就像您在视图中指定您将在那里使用css文件一样。

您需要做的是转到Static>App\u Start>BundleConfig.cs:

然后为每个视图创建一个包:

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/GlobalScripts")
                            .Include("~/Static/Scripts/jquery-1.10.2.js"
                                    , "~/Static/Scripts/json2.js"
                                    , "~/Static/Scripts/jquery-ui-1.10.4.js"
                                    //, "~/Static/Scripts/jquery.layout-1.3.0.js"
                                    //, "~/Static/Scripts/jquery.layout.state.js"
                                    , "~/Static/Scripts/helper.mainlayout.js"));
    }
}
只需在
中为视图中的每个javascript添加脚本路径。Include()
并继续执行
绑定。为您拥有的每个视图添加(new ScriptBundle())

您将使用CSS捆绑包执行类似的步骤,但是您将使用
StyleBundle

为了减少代码的重复,请尝试为每个相互依赖的Java脚本创建一个字符串列表,并对它们进行联合:

List<string> jqGridScripts = new List<string>
                             {"~/Static/Scripts/jquery.jqGrid.src.js"
                             , "~/Static/Scripts/i18n/grid.locale-en.js"
                             , "~/Static/Scripts/helper.jqgrid.js"};
List<string> jqStopwatch = new List<string> 
                             { "~/Static/Scripts/jquery.stopwatch.js" };

bundles.Add(new ScriptBundle("~/bundles/viewName")
                             .Include(jqGridScripts
                                     .Union(jqStopwatch).ToArray()));
HTML中的结果代码

<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>

我的意见

我真的不知道我们是否应该这样做。对我来说,我将所有页面中使用的脚本分离成一个单独的包,以便缓存。然后为视图中使用的脚本创建另一个包。我想说的是,我们应该在捆绑、缩小和缓存之间取得平衡

<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>