首页 > 代码库 > MVC5手工添加System.Web.Optimization

MVC5手工添加System.Web.Optimization

VS2012web手工添辑一个空的mvC5的项目,添加EF6的支持,在别的项目里复制了母版页_Layout.cshtml过来,发现Styles.Render未引用,这个引用使用的命名空间是System.Web.Optimization,直接在项目里添加是找不到的,如是在NuGet命令行添加Install-Package Microsoft.AspNet.Web.Optimization

PM> Install-Package Microsoft.AspNet.Web.Optimization正在尝试解析依赖项“Microsoft.Web.Infrastructure (≥ 1.0.0)”。正在尝试解析依赖项“WebGrease (≥ 1.5.2)”。正在尝试解析依赖项“Antlr (≥ 3.4.1.9004)”。正在尝试解析依赖项“Newtonsoft.Json (≥ 5.0.4)”。正在安装“Antlr 3.4.1.9004”。已成功安装“Antlr 3.4.1.9004”。正在安装“Newtonsoft.Json 5.0.8”。已成功安装“Newtonsoft.Json 5.0.8”。正在安装“WebGrease 1.5.2”。您正在从 webgrease@microsoft.com 下载 WebGrease,有关此程序包的许可协议在 http://www.microsoft.com/web/webpi/eula/msn_webgrease_eula.htm 上提供。请检查此程序包是否有其他依赖项,这些依赖项可能带有各自的许可协议。您若使用程序包及依赖项,即构成您接受其许可协议。如果您不接受这些许可协议,请从您的设备中删除相关组件。已成功安装“WebGrease 1.5.2”。正在安装“Microsoft.AspNet.Web.Optimization 1.1.3”。您正在从 Microsoft 下载 Microsoft.AspNet.Web.Optimization,有关此程序包的许可协议在 http://www.microsoft.com/web/webpi/eula/aspnetcomponent_rtw_enu.htm 上提供。请检查此程序包是否有其他依赖项,这些依赖项可能带有各自的许可协议。您若使用程序包及依赖项,即构成您接受其许可协议。如果您不接受这些许可协议,请从您的设备中删除相关组件。已成功安装“Microsoft.AspNet.Web.Optimization 1.1.3”。

到已成功安装"Microsoft.AspNet.Web.Optimization 1.1.3"这时就已经安装成功了,会自动给你的项目添加相关dll

此时发现Styles.Render依然不可用,于是乎,我们给他增加命名空间View下面的webConfig添加

    <pages pageBaseType="System.Web.Mvc.WebViewPage">      <namespaces>        <add namespace="System.Web.Mvc" />        <add namespace="System.Web.Mvc.Ajax" />        <add namespace="System.Web.Mvc.Html" />        <add namespace="System.Web.Routing" />        <add namespace="System.Web.Optimization"/>      </namespaces>    </pages>

再次,在App_start下手工添加BundleConfig文件来加载css和js文件

技术分享
using System.Web;using System.Web.Optimization;namespace FoodCountSystem{    public class BundleConfig    {        // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725        public static void RegisterBundles(BundleCollection bundles)        {            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(                        "~/Scripts/jquery-{version}.js"));            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(                        "~/Scripts/jquery-ui-{version}.js"));            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(                        "~/Scripts/jquery.unobtrusive*",                        "~/Scripts/jquery.validate*"));            // 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好            // 生产准备时,请使用 http://modernizr.com 上的生成工具来仅选择所需的测试。            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(                        "~/Scripts/modernizr-*"));            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(                        "~/Content/themes/base/jquery.ui.core.css",                        "~/Content/themes/base/jquery.ui.resizable.css",                        "~/Content/themes/base/jquery.ui.selectable.css",                        "~/Content/themes/base/jquery.ui.accordion.css",                        "~/Content/themes/base/jquery.ui.autocomplete.css",                        "~/Content/themes/base/jquery.ui.button.css",                        "~/Content/themes/base/jquery.ui.dialog.css",                        "~/Content/themes/base/jquery.ui.slider.css",                        "~/Content/themes/base/jquery.ui.tabs.css",                        "~/Content/themes/base/jquery.ui.datepicker.css",                        "~/Content/themes/base/jquery.ui.progressbar.css",                        "~/Content/themes/base/jquery.ui.theme.css"));        }    }}
View Code

然后在Global.asax中注册BundleConfig.RegisterBundles(BundleTable.Bundles);

到这里,mvc的母版页已正常可以使用了,并用可以使用BundleTable.Bundles来加载js和css文件,这个方法确实非常实用,且功能强大,能够压缩合并js和CSS,并且自己很容易扩展,方便快捷。

 

MVC5手工添加System.Web.Optimization