-ASPNET35开发大全第17章.doc
《-ASPNET35开发大全第17章.doc》由会员分享,可在线阅读,更多相关《-ASPNET35开发大全第17章.doc(24页珍藏版)》请在咨信网上搜索。
1、孙永杰著作ASP.NET开发第17章 ASP.NET MVC基础在ASP.NET应用程序开发中,开发人员很难将ASP.NET应用程序进行良好分层并使相应的页面进行相应的输出,例如页面代码只进行页面布局和样式的输出而代码页面只负责进行逻辑的处理。为了解决这个问题,微软开发了MVC开发模式方便开发人员进行分层开发。17.1 了解MVCMVC是一个设计模式,MVC能够将ASP.NET应用程序的视图、模型和控制器进行分开,开发人员能够在不同的层次中进行应用程序层次的开发,例如开发人员能够在视图中进行页面视图的开发,而在控制器中进行代码的实现。17.1.1 MVC和Web Form在ASP.NET We
2、b Form的开发当中,用户能够方便的使用微软提供的服务器控件进行应用程序的开发,从而提高开发效率。虽然ASP.NET Web Form提高了开发速度、维护效率和代码的复用性,但是ASP.NET现有的编程模型抛弃了传统的网页编程模型,在很多应用问题的解决上反而需要通过复杂的实现完成。在ASP.NET MVC模型中,ASP.NET MVC模型给开发人员的感觉仿佛又回到了传统的网页编程模型中(如ASP编程模型),但是ASP.NET MVC模型与传统的ASP同样是不同的编程模型,因为ASP.NET MVC模型同样是基于面向对象的思想进行应用程序的开发。相比之下,ASP.NET MVC模型是一种思想,
3、而不是一个框架,所以ASP.NET MVC模型与ASP.NET Web Form并不具有可比性。同样ASP.NET MVC模型也不是ASP.NET Web Form 4.0,这两个开发模型就好比一个是汽车一个是飞机,而两者都能够达到同样的目的。ASP.NET MVC模型是另一种Web开发的实现思路,其实现的过程并不像传统的ASP.NET应用程序一样。当用户通过浏览器请求服务器中的某个页面时,其实是实现了ASP.NET MVC模型中的一个方法,而不是具体的页面,这在另一种程度上实现了URL伪静态。当用户通过浏览器请求服务器中的某一个路径时,ASP.NET MVC应用程序会拦截相应的地址并进行路由
4、解析,通过应用程序中编程实现展现一个页面给用户,这种页面展现手法同传统的ASP.NET Web From应用程序与其他的如ASP,PHP等应用程序都不相同。同时,随着互联网的发展,搜索引擎在Web开发中起着重要的作用,这就对页面请求的地址有了更加严格的要求。例如百度、谷歌等搜索引擎会对目录形式的页面路径和静态形式的页面路径收录的更好,而对于动态的如abc.aspx?id=1&action=add&t=3这种样式的页面路径不甚友好。另外,所有引擎又在一定程度上决定了Web应用的热度,例如当在百度中搜索“鞋”这个关键字时,如果搜索的结果中客户的网站在搜索结果的后几页,用户通常不会进行翻页查询,相比
5、之下用户更喜欢在搜索结果中查看前几页的内容。ASP.NET MVC开发模型在用户进行页面请求时会进行URL拦截并通过相应的编程实现访问路径和页面的呈现,这样就能够更加方便的实现目录形式的页面路径和静态形式,对于Web应用动态的地址如abc.aspx?id=1&action=add&t=3可以以abc/action/id/add的形式呈现,这样就更加容易的被搜索引擎所搜录。注意:ASP.NET MVC模型和ASP.NET Web Form并不具备可比性,因为ASP.NET MVC模型和ASP.NET Web Form是不同的开发模型,而ASP.NET MVC模型和ASP.NET Web Form
6、在各自的应用上都有有点和缺点,并没有哪个开发模型比另一个模型好之说。17.1.2 ASP.NET MVC的运行结构在ASP.NET MVC开发模型中,页面的请求并不是像传统的Web应用开发中的请求一样是对某个文件进行访问,初学者可能会在一开始觉得非常的不适应。例如当用户访问/home/abc.aspx时,在服务器的系统目录中一定会存在abc.aspx这个页面,而对于传统的页面请求的过程也非常容易理解,因为在服务器上只有存在了home文件夹,在home文件夹下一定存在abc.aspx页面才能够进行相应的页面访问。对于ASP.NET MVC开发模型而言,当请求URL路径为“/home/abc.as
7、px”时,也许在服务器中并不存在相应的abc.aspx页面,而可能是服务器中某个方法。在ASP.NET MVC应用程序中,页面请求的地址不能够按照传统的概念进行分析,要了解ASP.NET MVC应用程序的页面请求地址就需要了解ASP.NET MVC开发模型的运行结构。ASP.NET MVC开发模型的运行结构如图17-1所示。图17-1 ASP.NET MVC开发模型正如图17-1所示,ASP.NET MVC开发模型包括三个模块,这三个模块分别为MVC的M、V、C,其中M为Models(模型)、V为Views(视图)、C为Controllers(控制器),在ASP.NET MVC开发模型中,这三
8、个模块的作用分别如下所示。q Models:Models负责与数据库进行交互,在ASP.NET MVC框架中,使用LINQ进行数据库连接和操作。q Views:Views负责页面的页面呈现,包括样式控制,数据的格式化输出等。q Controllers:Controllers负责处理页面的请求,用户呈现相应的页面。与传统的页面请求和页面运行方式不同的是,ASP.NET MVC开发模型中的页面请求首先会发送到Controllers中,Controllers再通过Models进行变量声明和数据读取。Controller通过页面请求和路由设置呈现相应的View给浏览器,用户就能够在浏览器中看到相应的页
9、面。这里讲解ASP.NET MVC开发模型的工作流程可能会让读者感到困惑,具体ASP.NET MVC开发模型的工作流程会在后面详细讲解。17.2 ASP.NET MVC基础ASP.NET MVC开发模型和ASP.NET Web From开发模型并不相同,ASP.NET MVC为ASP.NET Web开发进行了良好的分层,ASP.NET MVC开发模型和ASP.NET Web From开发模型在请求处理和应用上都不尽相同,只有了解ASP.NET Web From开发模型的基础才能够高效的开发MVC应用程序。17.2.1 安装ASP.NET MVCASP.NET MVC是微软推出的最新的ASP.N
10、ET Web开发模型,开发人员可以在微软的官方网站上下载ASP.NET MVC安装程序,也能够使用光盘中附属的ASP.NET MVC安装程序进行安装,光盘中附带的是ASP.NET MVC beta版本,正式版同beta版本基本上没有任何区别,开发人员可以在官方网站下载最新的安装程序。单击下载或附录中的AspNetMVCBeta-setup.msi进行ASP.NET MVC开发模型的安装和相应示例的安装,如图17-2所示。用户单击ASP.NET MVC安装界面中的【Next】按钮进入ASP.NET MVC安装的用户条款界面,单击【I accept the terms int the Licens
11、e Agreement】复选框同意ASP.NET MVC用户条款,如图17-3所示。同意后单击【Next】按钮进入ASP.NET MVC安装准备界面,进入安装界面后单击【Install】按钮进行安装。 图17-2 ASP.NET MVC安装界面 图17-3 ASP.NET MVC用户条款注意:在安装ASP.NET MVC前必须安装Visual Studio 2008进行ASP.NET MVC应用程序的开发,安装完成ASP.NET MVC应用程序后就能够在Visual Studio 2008进行创建ASP.NET MVC应用程序。单击【Install】按钮应用程序,系统就会在计算机中安装ASP.
12、NET MVC开发模型和Visual Studio 2008中进行ASP.NET MVC程序开发所需要的必备组件以便在Visual Studio 2008为开发人员提供原生的ASP.NET MVC开发环境。安装完毕后,安装程序会提示ASP.NET MVC安装程序已经安装完毕,安装完毕后开发人员就能够使用Visual Studio 2008开发ASP.NET MVC应用程序。安装过程如图17-4和17-5所示。 图17-4 ASP.NET MVC安装 图17-5 ASP.NET MVC安装完毕17.2.2 新建一个MVC应用程序安装完成ASP.NET MVC开发模型后就能够在Visual Stu
13、dio 2008中创建ASP.NET MVC应用程序进行ASP.NET MVC应用程序的开发,安装ASP.NET MVC开发模型后,Visual Studio 2008就能够为ASP.NET MVC提供原生的开发环境。在菜单栏中选择【文件】选项,单击【文件】选项在下拉菜单中选择【新建项目】就能够创建ASP.NET MVC应用程序,如图17-6所示。单击【确定】按钮后就能够创建ASP.NET MVC应用程序。Visual Studio 2008为ASP.NET MVC提供了原生的开发环境,以及智能提示,开发人员在进行ASP.NET MVC应用程序开发中,Visual Studio 2008同样能
14、够为ASP.NET MVC应用程序提供关键字自动补完、智能解析等功能以便开发人员高效的进行ASP.NET MVC应用程序的开发。创建ASP.NET MVC应用程序后,系统会自动创建若干文件夹和文件,如图17-7所示。 图17-6 创建ASP.NET MVC应用程序 图17-7 自动创建的文件在自动创建的文件中,这些文件包括ASP.NET MVC应用程序中最重要的文件夹用于分层开发,这些文件夹分别为Models、Views和Controllers,分别对应ASP.NET MVC开发模型的Models(模型)、Views(视图)、Controller(控制器),开发人员能够在相应的文件夹中创建文件
15、进行ASP.NET MVC应用程序的开发。17.2.3 ASP.NET MVC应用程序的结构在创建完成ASP.NET MVC应用程序,系统会默认创建一些文件夹,这些文件夹不仅包括对应ASP.NET MVC开发模型的Models、Views和Controllers文件夹,还包括配置文件Web.config、Global.aspx和Default.aspx。1Default.aspx:页面驱动Default.aspx用于ASP.NET MVC应用程序程序的驱动,当用户执行相应的请求时,Default.aspx能够驱动ASP.NET MVC应用程序页面的处理和生成,Default.aspx页面代码如
16、下所示。Default.aspx页面代码同传统的ASP.NET Web Form基本相同,但Default.aspx只是用于MVC应用程序的驱动。Default.aspx使用IHttpHandler类获取和发送HTTP请求,Default.aspx.cs页面代码如下所示。using System.Web;using System.Web.Mvc;/使用Mvc命名空间using System.Web.UI;namespace _17_1 public partial class _Default : Page public void Page_Load(object sender, System
17、.EventArgs e) HttpContext.Current.RewritePath(Request.ApplicationPath);/拦截虚拟目录根路径 IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest(HttpContext.Current); 上述代码用于ASP.NET MVC应用程序的驱动。在ASP.NET MVC应用程序被运行时,会拦截虚拟目录的根路径将请求发送到Controllers实现。2Global.asax:全局配置文件Global.asax是全局配置文件,在ASP.
18、NET MVC应用程序中的应用程序路径是通过Global.asax文件进行配置和实现的,Global.asax页面代码如下所示。using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;/使用Mvc命名空间using System.Web.Routing;/使用Mvc命名空间namespace _17_1 / Note: For instructions on enabling IIS6 or IIS7 classic mode, / visit p
19、ublic class MvcApplication : System.Web.HttpApplication public static void RegisterRoutes(RouteCollection routes) routes.IgnoreRoute(resource.axd/*pathInfo); routes.MapRoute( Default,/配置路由名称 controller/action/id,/配置访问规则 new controller = Home, action = Index, id = /为访问规则配置默认值 );/配置URL路由 protected voi
20、d Application_Start() RegisterRoutes(RouteTable.Routes); 上述代码在应用程序运行后能够实现相应的URL映射,当用户请求一个页面时,该页面会在运行时启动并指定ASP.NET MVC应用程序中URL的映射以便将请求提交到Controllers进行相应的编程处理和页面呈现。Global.asax实现了伪静态的URL配置,例如当用户访问/home/guestbook/number服务器路径时,Global.asax通过URLRouting够实现服务器路径/home/guestbook/number到number.aspx的映射。有关URLRout
21、ing的知识会在后面的小结中讲解。注意:在ASP.NET MVC开发模型中,浏览器地址栏的URL并不能够被称为是伪静态,为了方便读者的理解可以暂时称为伪静态,但是最主要的是要理解访问的路径并不像传统的Web开发中那样是访问真实的某个文件。3Models、Views和Controllers三层结构Models、Views和Controllers文件夹是ASP.NET MVC开发模型中最为重要的文件夹,虽然这里以文件夹的形式呈现在解决方案管理器中,其实并不能看作传统的文件夹。Models、Views和Controllers分别用于存放ASP.NET MVC应用程序中Models、Views和Con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASPNET35 开发 大全 17
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。