




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
跟我一起学习ASP.NET 4.5 MVC4.0(六)这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系统,VS2012和SQLServer 2012,顺便抽空继续一篇。随着VS2012 RC版本的放出,ASP.NET MVC4.0也随之有所改变,主要相对于BETA版本。前面几章节都是介绍MVC4.0或者是3.0中内容,今天我们来了解一下WebPage 2.0下面的一些变化。在MVC3.0中使用的是WebPage 1.0版本,这里主要是介绍一下在MVC4.0中对脚本以及样式表的引用变化等等。 一、可以直接使用“”,而无需使用Href对象实例这个是一大变化,给我们ASP.NET MVC开发人员带来了很便捷的代码书写方式,提高不少效率。在MVC3.0中加入我们需要加入一张图片时,需要在IMG标签的SRC属性加上Url.Content或Href对象方法等来对路径进行解析。在WebPage 2.0中Razor模板引擎能够自动解析基于根目录的路径,即可以直接使用“”来表示根目录。 MVC3:Home MVC4:Home 二、CheckBox等可以根据Value自动隐藏checked属性 在以前初始化一个CheckBox是否被选中,都需要额外写一个方法来判断是否在INPUT的CheckBox中加入checked属性。在MVC4.0中这个将被改变,这也是一个很赞的改进,具体可以看如下代码。MVC3: 1 input type=checkbox2 name=check13 value=check14 if(checked1)checked=checked1 /MVC4: 1 只要checked1变量为false或null,将会隐藏checked属性,是不是一个很好的改进! 三、使用System.Web.Optimization对脚本和样式表的操作这个也是本章重点向描述的部分,首先我们可以使用VS2012RC来新建一个MVC4.0项目,版本可以为4.0或4.5。在Global.asax文件代码中,我们发现已经把过滤器,路由器,以及对样式表和脚本捆绑(Bundles)移到了其他页面,就是在根目录下的App_Start文件夹内。代码只是简简单单的几行,代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data.Entity; 5 using System.Data.Entity.Infrastructure; 6 using System.Linq; 7 using System.Web; 8 using System.Web.Http; 9 using System.Web.Mvc;10 using System.Web.Optimization;11 using System.Web.Routing;12 13 namespace MVC414 15 / Note: For instructions on enabling IIS6 or IIS7 classic mode, 16 / visit /?LinkId=939480117 18 public class MvcApplication : System.Web.HttpApplication19 20 protected void Application_Start()21 22 AreaRegistration.RegisterAllAreas();23 24 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);25 RouteConfig.RegisterRoutes(RouteTable.Routes);26 BundleConfig.RegisterBundles(BundleTable.Bundles);27 28 29 而在App_Start目录下多了3个文件,他们分别是RilterConfig.cs,RouteConfig.cs以及BundleConfig.cs文件。在BETA版本中还是直接写在Global.asax文件中,从名称上就可以知道他们各自的功能,今天我们主要了解BundleConfig.cs文件的内容和功用。 在BundleConfig.cs文件中,包含了一些应用程序中使用的脚本和样式表的文件路径,其中可以使用通配符,具体代码如下所示: 1 using System.Web; 2 using System.Web.Optimization; 3 4 namespace MVC4 5 6 public class BundleConfig 7 8 public static void RegisterBundles(BundleCollection bundles) 9 10 bundles.Add(new ScriptBundle(/bundles/jquery).Include(11 /Scripts/jquery-1.*);12 13 bundles.Add(new ScriptBundle(/bundles/jqueryui).Include(14 /Scripts/jquery-ui*);15 16 bundles.Add(new ScriptBundle(/bundles/jqueryval).Include(17 /Scripts/jquery.unobtrusive*,18 /Scripts/jquery.validate*);19 20 bundles.Add(new ScriptBundle(/bundles/modernizr).Include(21 /Scripts/modernizr-*);22 23 bundles.Add(new StyleBundle(/Content/css).Include(/Content/site.css);24 25 bundles.Add(new StyleBundle(/Content/themes/base/css).Include(26 /Content/themes/base/jquery.ui.core.css,27 /Content/themes/base/jquery.ui.resizable.css,28 /Content/themes/base/jquery.ui.selectable.css,29 /Content/themes/base/jquery.ui.accordion.css,30 /Content/themes/base/jquery.ui.autocomplete.css,31 /Content/themes/base/jquery.ui.button.css,32 /Content/themes/base/jquery.ui.dialog.css,33 /Content/themes/base/jquery.ui.slider.css,34 /Content/themes/base/jquery.ui.tabs.css,35 /Content/themes/base/jquery.ui.datepicker.css,36 /Content/themes/base/gressbar.css,37 /Content/themes/base/jquery.ui.theme.css);38 39 40 这些都是关于Bundle的应用,从代码中就可以看到,Bundle实例对象(Script和Style)中包含一个虚拟目录,这个目录可以在页面中使用时作为唯一键引入。当然在实现优化时,这个虚拟目录将呈现在前台页面中,这个后面将继续讲述。下面我们来看一下在代码中如何使用他们,在System.Web.Optimization程序集中包含了Scripts和Styles两个类,分别用于呈现Bundle集合中的脚本和样式表,代码如下:1 Styles.Render(/Content/themes/base/css, /Content/css)2 Scripts.Render(/bundles/modernizr)从上面就可以看出,往页面中引入了两个捆绑的样式表和一个脚本,这些引入是包含了所有Include方法内的文件,调试一下看看前台HTML代码就知道了。而他们中的另一个方法Url则是对外部文件的引入,例如CDN中的文件,如:Google等等API文件。 四:对样式表和脚本的优化这项其实也是包含在三中的,我独立出来,最主要感觉是我觉得他是个不错的家伙。代码简单,但是非常的适用,不知道大家有没有使用过AjaxMinify这个东东,可以把脚本编译,压缩成最小的内容。不过都是要使用命令的,然而在MVC4.0中System.Web.Optimization已经包含了这个东东,他们就是JsMinify和CssMinify,不要小看这两个类,虽然公开的方法就两个。按照上述方法是用Scripts和Styles将脚本和样式表引入页面时,无需修改任何代码就可以将脚本和样式表编译压缩输入到客户端,这样不仅可以有效的增加JSHack的难度以及降低文件的大小。为了达到这个目的,我们只需要将BundleTable中的一个属性设置为true即可,代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data.Entity; 5 using System.Data.Entity.Infrastructure; 6 using System.Linq; 7 using System.Web; 8 using System.Web.Http; 9 using System.Web.Mvc;10 using System.Web.Optimization;11 using System.Web.Routing;12 13 namespace MVC414 15 / Note: For instructions on enabling IIS6 or IIS7 classic mode, 16 / visit /?LinkId=939480117 18 public class MvcApplication : System.Web.HttpApplication19 20 protected void Application_Start()21 22 AreaRegistration.RegisterAllAreas();23 24 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);25 RouteConfig.RegisterRoutes(RouteTable.Rou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第2章 第2节 第1课时 冬季南北温差大夏季普遍高温(新说课稿)2025-2026学年八年级上册地理(人教版)
- Unit 10 Musical chairs说课稿小学英语新世纪英语三年级下册-新世纪英语
- 16 田忌赛马(教学设计)-统编版语文五年级下册
- 16.3 角的平分线说课稿初中数学冀教版2024八年级上册-冀教版2024
- 11 我是一张纸(教学设计)部编版道德与法治二年级下册
- 资产审计申请书
- 海事安全与保安培训课件
- 师大版九年级科学上第一章第一节第一课时质量守恒定律说课稿
- 退商户押金申请书
- 房产证遗失申请书
- 金属热处理工测试考核试卷及答案
- 食品安全宣传培训会课件
- GB/T 21415-2025体外诊断医疗器械建立校准品、正确度控制物质和人体样品赋值的计量溯源性要求
- 患者走失应急演练脚本(2篇)
- 安徽省2025年公需科目培训测验答案(科目一)
- 高中数学-斐波那契数列与黄金分割教学设计
- 数据驱动的教育决策
- 农作物植保员职业技能竞赛题库及答案
- T梁湿接缝及横隔梁施工方案
- (完整)易制毒化学品使用管理责任书
- 石群邱关源电路课件(第8至16单元)白底
评论
0/150
提交评论