明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

MVC 中Scripts.Render、Styles.Render

Posted on 2018-01-09 10:53  且行且思  阅读(478)  评论(0编辑  收藏  举报

在ASP.NET MVC项目中,可以在视图中利用Scripts.Render、Styles.Render统一加载js、css文件,需要利用BundleConfig类来Add 各种Bundle,例如:bundles.Add(new StyleBundle("~/Content1").Include("~/Content/common。css", "~/Content/content。css"))

一、配置BundleConfig.cs文件

1、首先要在App_Start 里面BundleConfig.cs 文件里面 添加要包含的css文件

2、BundleConfig就是一个微软新加的 一个打包的配置类

3、BundleConfig用来Add 各种Bundle

4、BundleConfig配置信息如图:

public class BundleConfig {
      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 StyleBundle("~/Content1/css").Include("~/Content/site.css"));
            bundles.Add(new StyleBundle("~/Content1/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.theme.css"));
        }
    }
 5、配置信息说明

(1)、上面的"~/Content1" 是虚拟路径,可以随便起名,用于标记打包哪个文件夹下面的.css 文件,后面的Include方法接受的是一个string[] 根据传入的路径去对css文件进行打包。

(2)、使用Bundle来引用css有个好处 就是可以把多个css文件在一起请求,浏览器只发一次请求 不过必须在Global.asax里面 加一段代码 BundleTable.EnableOptimizations = true 来启用优化。

(3)、在启用优化后,当页面下次再次发送请求的时候 BundleConfig里面没有更改的话 浏览器会从缓存中去取
 


二、使用Scripts.Render、Styles.Render引用BundleConfig中的配置

1、在视图文件中使用Scripts.Render()输出脚本包,Styles.Render()输出样式包

2、Script文件引用:@Scripts.Render(virtualPath[,virtualPath1][,virtualPath2][,...])

3、CSS文件引用:  @Styles.Render(virtualPath[,virtualPath1][,virtualPath2][,...])

4、实例


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content1/css")
</head>
<body>
    @RenderBody()

    @Scripts.Render("~/bundles/jqueryui")
</body>
</html>