全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
跟我一起学习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:HomeMVC4:Home二、CheckBox等可以根据Value自动隐藏checked属性在以前初始化一个CheckBox是否被选中,都需要额外写一个方法来判断是否在INPUT的CheckBox中加入checked属性。在MVC4.0中这个将被改变,这也是一个很赞的改进,具体可以看如下代码。MVC3:1inputtype=checkbox2name=check13value=check14if(checked1)checked=checked1/MVC4:1只要checked1变量为false或null,将会隐藏checked属性,是不是一个很好的改进!三、使用System.Web.Optimization对脚本和样式表的操作这个也是本章重点向描述的部分,首先我们可以使用VS2012RC来新建一个MVC4.0项目,版本可以为4.0或4.5。在Global.asax文件代码中,我们发现已经把过滤器,路由器,以及对样式表和脚本捆绑(Bundles)移到了其他页面,就是在根目录下的App_Start文件夹内。代码只是简简单单的几行,代码如下:1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Configuration;4usingSystem.Data.Entity;5usingSystem.Data.Entity.Infrastructure;6usingSystem.Linq;7usingSystem.Web;8usingSystem.Web.Http;9usingSystem.Web.Mvc;10usingSystem.Web.Optimization;11usingSystem.Web.Routing;1213namespaceMVC41415/Note:ForinstructionsonenablingIIS6orIIS7classicmode,16/visit/?LinkId=93948011718publicclassMvcApplication:System.Web.HttpApplication1920protectedvoidApplication_Start()2122AreaRegistration.RegisterAllAreas();2324FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);25RouteConfig.RegisterRoutes(RouteTable.Routes);26BundleConfig.RegisterBundles(BundleTable.Bundles);272829而在App_Start目录下多了3个文件,他们分别是RilterConfig.cs,RouteConfig.cs以及BundleConfig.cs文件。在BETA版本中还是直接写在Global.asax文件中,从名称上就可以知道他们各自的功能,今天我们主要了解BundleConfig.cs文件的内容和功用。在BundleConfig.cs文件中,包含了一些应用程序中使用的脚本和样式表的文件路径,其中可以使用通配符,具体代码如下所示:1usingSystem.Web;2usingSystem.Web.Optimization;34namespaceMVC456publicclassBundleConfig78publicstaticvoidRegisterBundles(BundleCollectionbundles)910bundles.Add(newScriptBundle(/bundles/jquery).Include(11/Scripts/jquery-1.*);1213bundles.Add(newScriptBundle(/bundles/jqueryui).Include(14/Scripts/jquery-ui*);1516bundles.Add(newScriptBundle(/bundles/jqueryval).Include(17/Scripts/jquery.unobtrusive*,18/Scripts/jquery.validate*);1920bundles.Add(newScriptBundle(/bundles/modernizr).Include(21/Scripts/modernizr-*);2223bundles.Add(newStyleBundle(/Content/css).Include(/Content/site.css);2425bundles.Add(newStyleBundle(/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);383940这些都是关于Bundle的应用,从代码中就可以看到,Bundle实例对象(Script和Style)中包含一个虚拟目录,这个目录可以在页面中使用时作为唯一键引入。当然在实现优化时,这个虚拟目录将呈现在前台页面中,这个后面将继续讲述。下面我们来看一下在代码中如何使用他们,在System.Web.Optimization程序集中包含了Scripts和Styles两个类,分别用于呈现Bundle集合中的脚本和样式表,代码如下:1Styles.Render(/Content/themes/base/css,/Content/css)2Scripts.Render(/bundles/modernizr)从上面就可以看出,往页面中引入了两个捆绑的样式表和一个脚本,这些引入是包含了所有Include方法内的文件,调试一下看看前台HTML代码就知道了。而他们中的另一个方法Url则是对外部文件的引入,例如CDN中的文件,如:Google等等API文件。四:对样式表和脚本的优化这项其实也是包含在三中的,我独立出来,最主要感觉是我觉得他是个不错的家伙。代码简单,但是非常的适用,不知道大家有没有使用过AjaxMinify这个东东,可以把脚本编译,压缩成最小的内容。不过都是要使用命令的,然而在MVC4.0中System.Web.Optimization已经包含了这个东东,他们就是JsMinify和CssMinify,不要小看这两个类,虽然公开的方法就两个。按照上述方法是用Scripts和Styles将脚本和样式表引入页面时,无需修改任何代码就可以将脚本和样式表编译压缩输入到客户端,这样不仅可以有效的增加JSHack的难度以及降低文件的大小。为了达到这个目的,我们只需要将BundleTable中的一个属性设置为true即可,代码如下:1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Configuration;4usingSystem.Data.Entity;5usingSystem.Data.Entity.Infrastructure;6usingSystem.Linq;7usingSystem.Web;8usingSystem.Web.Http;9usingSystem.Web.Mvc;10usingSystem.Web.Optimization;11usingSystem.Web.Routing;1213namespaceMVC41415/Note:ForinstructionsonenablingIIS6orIIS7classicmode,16/visit/?LinkId=93948011718publicclassMvcApplication:System.Web.HttpApplication1920protectedvoidApplication_Start()2122AreaRegistration.RegisterAllAreas();2324FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);25RouteConfig.RegisterRoutes(RouteTable.Routes);26BundleTable.EnableOptimizations=true;27BundleConfig.RegisterBundles(BundleTable
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年1月广东广州市天河区瑜翠园幼儿园编外聘用制专任教师招聘1人备考题库参考答案详解
- 2026广西崇左凭祥市看守所公益性岗位工作人员招聘备考题库及完整答案详解1套
- 2025云南省电子竞技协会招聘备考题库及完整答案详解
- 2025乌鲁木齐市第十三中栋梁校区招聘备考题库及答案详解参考
- 2025年铁岭市事业单位公开招聘动物检疫岗位工作人员77人备考题库及1套完整答案详解
- 2026中国大地财产保险股份有限公司锡林郭勒中心支公司招聘2人备考题库(内蒙古)及答案详解(考点梳理)
- 2026年六安一中公开招聘2026届应届公费师范毕业生备考题库及完整答案详解
- 2026江西南昌市劳动保障事务代理中心以劳务外包形式招聘项目申报与监测服务工作人员1人备考题库及1套参考答案详解
- 2026广西北海市海城区市场监督管理局招聘协管员的2人备考题库及答案详解一套
- 2026河南漯河医学高等专科学校第一附属医院(漯河市中心医院)人才引进20人备考题库及完整答案详解
- 贵州省贵阳市(2024年-2025年小学五年级语文)部编版期末考试((上下)学期)试卷及答案
- 正规装卸合同范本
- 自动控制原理仿真实验课程智慧树知到答案2024年山东大学
- JBT 7946.2-2017 铸造铝合金金相 第2部分:铸造铝硅合金过烧
- 流程与TOC改善案例
- 【当代中国婚礼空间设计研究4200字(论文)】
- GB/T 20322-2023石油及天然气工业往复压缩机
- 提捞采油安全操作规程
- DB3211-T 1048-2022 婴幼儿日间照料托育机构服务规范
- YY/T 1846-2022内窥镜手术器械重复性使用腹部冲吸器
- GB/T 15390-2005工程用焊接结构弯板链、附件和链轮
评论
0/150
提交评论