在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以ASP.NET MVC4引入了Bundles特性,使得我们可以方便的管理javascript和css文件。

  原来,我们引用css和javascript文件我们需要这样一个一个的引用:

<scriptsrc="~/Scripts/jquery-1.8.2.js"></script>
<scriptsrc="~/Scripts/jquery-ui-1.8.24.js"></script>
<scriptsrc="~/Scripts/jquery.validate.js"></script>
<linkhref="~/Content/Site.css"rel="stylesheet"/>

  当需要引用文件的数量较少时还好,但一旦每个页面都需要引用较多文件时,会造成极大的不便,当我们想更换某个引用文件时,将会浪费大量的时间。发布时,还要将一些库替换成release版,比如上面的jquery-1.8.2.js所对应的jquery-1.8.2.min.js

  还好,现在我们可以使用Bundles特性:

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 ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/jquery.unobtrusive*","~/Scripts/jquery.validate*"));bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
}
}

  接着在Global.asax文件的Application_Start方法中调用BundleConfig.RegisterBundles方法:

protected void Application_Start()
{AreaRegistration.RegisterAllAreas();WebApiConfig.Register(GlobalConfiguration.Configuration);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);
}

  在上面我们可以看到我们按照功能的不同,将不同的文件分到了相应的Bundle(Bundle就是包的意思),其中构造函数中的string参数是Bundle的名称,Include函数是将参数相应的文件包含成一个Bundle。可以发现,对于jquery库我们使用了这样的名称~/Scripts/jquery-{version}.js,其中{version}部分代表版本号的意思,MVC将会替我们在Scripts文件中寻找对应的”jquery-版本号.js”文件,并且在非debug模式下,MVC则会使用“jquery-版本号.min.js”文件。

  我们还看到我们使用了这样的名称~/Scripts/jquery.validate*的名称,*是一个通配符,这就意味着Scripts文件夹下的所有前缀为jquery.validate的文件都将包含在同一个Bundle中。

  最后,我们可以View上使用Bundle来代替原来引用的方式:

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquery")   

ASP.NET MVC Bundles的使用相关推荐

  1. ASP.NET MVC Bundles 用法和说明(打包javascript和css)

    在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以AS ...

  2. ASP.NET MVC Bundles 之学习笔记

    在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以AS ...

  3. ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS

    背景 LESS确实不错,只是每次写完LESS都要手工编译一下有点麻烦(VS插件一直没有安装好),昨天在官方看到了如何用IBundleTransform集成LESS,今天就记录一下. 参考资料:http ...

  4. 在ASP.NET MVC下实现树形导航菜单

    在需要处理很多分类以及导航的时候,树形导航菜单就比较适合.例如在汽车之家上: 页面主要分两部分,左边是导航菜单,右边显示对应的内容.现在,我们就在ASP.NET MVC 4 下临摹一个,如下: 实现的 ...

  5. ASP.NET MVC 5 - 视图

    2019独角兽企业重金招聘Python工程师标准>>> 在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成H ...

  6. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  7. 模型(Model)– ASP.NET MVC 4 系列

    为 MVC Music Store 建模 在 Models 目录中为专辑.艺术家.流派建模: public class Album { public virtual int AlbumId { get ...

  8. apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...

    新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...

  9. ASP.NET MVC使用Bootstrap系列(1)——开始使用Bootstrap

    阅读目录 Bootstrap结构介绍 在ASP.NET MVC 项目中添加Bootstrap文件 为网站创建Layout布局页 使用捆绑打包和压缩来提升网站性能 在Bootstrap项目中使用捆绑打包 ...

最新文章

  1. js/jq判断鼠标滚轮方向
  2. Python PIL | Image.resize() 裁剪 缩放图片
  3. 醉了,RPC 超时设置也能引起线上事故!
  4. EZ 2018 03 23 NOIP2018 模拟赛(五)
  5. 【机器学习】使用 Python 构建电影推荐系统
  6. json转modbus协议模块_华杰智控Profinet 分布式IO系列模块-华杰智控-新闻中心
  7. 中间件和微服务,Docker以及原生云架构的关系
  8. 7-8 数字三角形 (31 分)(思路+详解+动态规划)Come Baby!!!!!!!!!!!
  9. FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS
  10. Go语言游戏服务器思维导图
  11. ZAB协议(ZooKeeper Atomic Broadcast)入门
  12. Lightroom Classic 教程,如何在 Lightroom Classic 中编辑照片?
  13. springmvc转换器converter的使用
  14. vs商业智能项目的安装
  15. 半糖主义的伤感空间日志推荐:心碎后,我们落泪
  16. 华为机试真题 C++ 实现【最短木板长度】【100%通过率】【2022.11 Q4 新题】
  17. Excel的类、方法和Excel操作
  18. 为什么用企业微信做运营
  19. Docker部署若伊前后端分离项目到阿里云服务器
  20. 基于PyTorch搭建CNN实现视频动作分类任务 有数据有代码 可直接运行

热门文章

  1. Javascript中的CJS、AMD、UMD 、ESM是什么
  2. 关于网上购物流程和如何维护网购权益
  3. 新基建形势下安全公共服务平台建设机遇
  4. 5个你应该知道的建站平台
  5. 三种测试环境中的软件和硬件,硬件需求十分良心 泰坦陨落AN显卡测试
  6. Linux虚拟机下载和安装
  7. 咸鱼ZTMS实例—智能车配件
  8. Process对象必须将UseShellExecute属性设置为False才能使用环境变量解决办法
  9. 空调制冷站设计的设计方法和流程丨行有嘉
  10. vue中引入路径的用法