1. 首页
  2. 编程语言
  3. C#
  4. .net MVC基础教程

.net MVC基础教程

上传者: 2018-12-25 20:17:21上传 PDF文件 4.7MB 热度 55次
.net MVC基础教程,ASP.NET MVC原理,MVC框架模型介绍与传统的页面请求和页面运行方式不同的是, ASP.NET MVC开发模型中的页面请求首先会发送到Controllers中, Controllers再通过 Models进行变量声明和数据读取。 Controller通过页面请求和路由设置呈现相应的view给浏览器,用户就能够在浏览器中看到相应的页面。这里讲解 ASP NET MVC开发模型的工作流程可能会让读者感到困惑,具体 ASP.NET MVC开发模型的工作流程会在后面详细讲解172 ASPNET MVO基础ASPNET MVC开发模型和 ASP net Web from开发椟型并不相同, ASP NET MVC为 ASPNETWeb开发进行了良好的分层, ASPNET MVC开发模型和 ASP NET WEb fron开发模型在请求处理和应用上都不尽相同,只有了解ASP. NET Web from开发模型的基础才能够高效的开发MVC应用程序。172.1安装 ASP NET MVCASP NET MVC是微软推出的最新的 ASP NET Web开发模型,开发人员可以在微软的官方网站上下载 ASPNET MVC安装程序,也能够使用光盘中附属的 ASPNET MVC安装程序进行安装,光盘中附带的是 ASP NETMVC beta版本,正式版同beta版本基本上没有任何区别,开发人员可以在官方网站下载最新的安装程序。单击下载或附录中的 AspNetMvCBeta-setup.msi进行 ASPNET MⅤC开发模型的安装和相应示例的安装,如图17-2所示。用户单击 ASPNET MYC安装界面中的【Nxt】按钮进入 ASPNET MYO安装的用户条款界面,单击【 I accept the terms int the License Agreement】复选框同意 ASPNET MVC用户条款,如图17-3所示。同意后单舌【Next】按钮进入 ASP. NET MVC安装准备界面,进入安装界面后单击【 Install】按钮进行安装TeBicresaEt ASK- MET VC leta setup樱■ erasakt Ask MET rE Beta SetupEnd-User License AgreementWelcome to the microsoft ASP. NET MVCPease read the folowing icense agreement carefullyBeta Setup WizardThe Setup VaizarE Mi insta Micosoft ASP. NET MYC Beta onMIICROSOFT PRE-RELEASE SOFTWAREyour compuer, dick Next to contnue or Cance to exit theSeap Izard.LICENSE TERMSMICROSOFT ASP.NET MODEL VIEWCONTROLLER-- BETAThase iicense terms are an agreement b.ween Microsoft CorporationDr hased nn where you IvP, one nf its af liates)and you. Flense readthem. They apply to the pre-release software named above, whichD I acoept he terms n the lierse AgreerentNexl图172 ASP NET MⅤC安装界面图173 ASPNET MVC用广条款注意:在安装ASP· NET MVC前必须安装Ⅴ isual studio2008进行 ASPNET MVC应用程序的开发,安装完成 ASP NET MVC应用程序后就能够在Ⅴ isual studio2008进行创建 ASP NET MVO应用程序。单击 Instal按钮应用程序,系统就会在计算机中安装 ASP NET MVC开发模型和Ⅴ isual studio2008中进行 ASP. NET MVO程序开发所需要的必备组件以便在 Visual studio2008为开发人员提供原生的ASPNETMⅤC开发环境。安装完毕后,安装程序会提示 ASP NET MVC安装程序已经安装完毕,安装完毕后开发人员就能够使用 Visual studio2008开发 ASPNET MVO应用程序。安装过程如图174和175小■ r saft ASP. T YC Beta SetrInstalling Microsoft ASP. NET MVC BetaCompleted the Microsoft ASP. NET MVCBeta Setup wizardPiEase wait while the Satp Azard instal Microsoft AsF NET MVC Beta.Cic t Finis button to Bot he 5ED WendStatus: Pub shing assemby informationv Dcp ay Mcocf: ASP NET MVC Beta Release Noter图174 ASPNET MVC安装图175 ASPNET MVO安装完毕17.22新建一个MVC应用程序安装完成 ASP NET MVC开发模型后就能够在 Visual studio2008中创建 ASPNET MVC应用程序进行 ASP. NET MVC应用程序的开发,安装 ASP NET MVC开发模型后,Ⅴ isual Studio2008就能够为ASPNET MVC提供原生的开发坏境。在菜单栏中选择【文件】选项,单击【文件】选项在下拉菜单中选择【新建项目】就能够创建 ASPNET MVO应冂程序,如图17-6所示单击【确定】按钮后就能够创建 ASPNET MVO应用程序。Ⅴ isual studio208为 ASPNET MVO提供了原生的开发环境,以及智能提示,开发人员在进行 ASP NET MVC应用程序开发中, Visual studio2008同样能够为 ASPNET MVC应用程序提供关键字自动补完、智能解析等功能以便开发人员高效的进行 ASP.NET MVC应用程序的廾发,创建 ASP. NET MVC应用程序后,系统会自动创建若干文件夹和文件,如图17-7所示ax目类)根立)HET Eranesopk35一晶iau13uli已玄粘的板方装笑管详器Pmr"h应用程感 ASP MET出屈应用程只sm?灯g果對器图SE. kT A为件一来方客“171个日17-1其的板图 roper tes到索联机德板L App_Data扑据画Cena-□ Controller3L models中_ Ser iglsA“f如钢“AP矩TW的国4)CT新k35中 efa t. spa,.代第,」中ba1x置eb.on:z献案称).-1线表方军的目录)L鹂聊」可解方藏管理鸟函晷济场管图176创建 ASP NETMVC应用程序图177自动创建的文件在白动创建的文件中,这些文件包括 ASPNET MVC应用程序中最重要的文件夹用于分层开发,这些文件夹分别为 Models、Ⅴiews和 Controllers,分别对应 ASPNET MVC开发模型的 Models(模型)、Views〔视图)、 Controller(控制器),开发人员能够在相应的文件夹中创建文件进行 ASPNET MVC应用程序的开发。1723 ASP.NET MVC应用程序的结构在创建完成 ASP NEt MVc应用程序,系统会默认创建一些文件夹,这些文件夹不仅包括对应ASP. NET MVC开发模型的 Models views和 Controllers文件夹,还包括配置文件 Web. config, Global.aspx和 Default. aspx1. Default. aspx:页面驱动Default. aspx用于 ASP. NET MVC应用程序程序的驱动,当用户执行相应的请求时, Defan.aspx能够驱动 ASPNET MVC应用程序页面的处理和生成, Defaull as px页面代码如下所示<% PageLanguage="CH"Auto EventWireup="true"Code Behind='Default. aspx cs"Inherits="171.Default"%o>Default. aspx页面代码同传统的 ASP NET Web form基本相同,但 Default. aspx只是用于MVC应用程序的驱动。 Default. aspx使用 IhTtphandler类获取和发送HIIP请求, Default. aspx. cs页面代码如下所小。using System. Webusing System. Web MVC∥使用Mvc命名空间using System. Web. Ulnamespace 17 1public partial class Default: Pagepublic void Page_Load(object sender, System. EventArgs e)Httpcontext. Current Rewrite path(request. Applicationpath)∥拦兰截虛拟目录根路径IHttpHandler hilpHandler= new MvcHtlpHandler(httphandler.Pracessrequest(httpcontExt.Current上述代码用于 ASPNET MⅤC应用程序的驱动。在 ASPNETMVO应用程序被运行时,会拦截虚拟目录的根路径将请求发送到 Controllers实现。2. Global asax:全局配置文件Globa.asax是全局配置文件,在 ASP NET MVC应用程序中的应用程序路径是通过 Global.asax文件进行配置和实现的, Global.asax页面代码如下所示。using Systemusing system. Collections, Generic;using System. Linqusing system. Webusing System. Web MVC;使用MG命名空间using System, Web, Routing∥使用MMc命名空间namespace_17_1// Note: For instructions on enabling lls6 or 57 classic mode436//visithttp:/go.microsoftcom/?Linkld=9394801public class MvcapplicatiOn: System Web Http Applicatianpublic static void RegisterRoutes(Route Collection routes)routes. Ignore Route(iresource axc/ pathInto )routes. Map RouteDefault配置路由名称Controller actionyidy/配置访问规则new i controller="Home, action="Index". id=F∥访问规则配置默认值/配置URL路由protected void Application_ StartRegister Routes(Route Table. Routes)上述代码在应用程序运行后能够实现相应的URL映射,当用户请求一个页面时,该页面会在运行时启动并指定 ASPNET MVC应用程序中URL的映射以使将请求提交到 Controllers进行相应的编程处理和页间呈现。Globalasax实现了伪静态的URL配置,例如当用户访问 Mhome/guestbook/number服务器路径时,Global asax通过 URLRouting够实现服务器路径/ ome/guestbook/number到 number;aspx的映射。有关URLRouting的知识会在后面的小结中讲解。注意:在 ASPNET MVC开发模型中,浏覽器地址栏的URL并不能够被称为是伪静态,为了方便读者的理解可以时称为伪静态,但是最主要的是要理解访问的路径并不镲传统的web开发中那样是坊问真实的某个文件。3. Models、 Views和 Controllers三层结构Models、Ⅴiews和 Controllers文件火是ASPN'MVC开发模型中最为重要的文件夹,虽然这旦以文件夹的形式呈现在解昃方案管理器中,其实并不能看作传统的文件夹。 Models、Ⅴiews和 Controllers分别用于存放 ASP NET MVC应用程疗中 Models、 Views和 Controllers的开发文件。在创建 ASP.NETMVC应用程序后,系统会自行创建相应的文件,这里也包括 ASPNET MVC应用程序样例,如图17-8和图17-9所示意器方契管理替中-回 rop ertIes国Fx心erti引用PEl- Cantent团□Ccrt凹 ccountCo2:r011ercs白 odels-□:6mt出□3 crarts回33日16db.a归cba,asa,g日a]ba1.a5sx→? b confi1 Slobalasax.cs诗 Yob. config与解决广案资原理器顾务态资原里都图17-8 Views视图文件夹图17-9 Controllers控制器文件夹正如图17-8、17-9所灬,在样例中分别创了若干 Controllers控制器文件,以及 Views页面文件。运行 ASPNET MVC应用程序后,用产的请求会发送到 Controllers控伺器中, Controllers控制器接受用广的请求并通过编程实现Ⅴiews页面文件的映射。1724运行 ASPNET MVO应用程序创建λ SP NET MVO.应用程序后就能够直接运行 ASPNET MVO应用程序,默认的 ASP NET MVC应用程序已经提供了样例方便丌发人员进行编程学习,单击【F5】运行 ASPNET MVO应用程序,运行后如图17-10所示。在创建 ASPNET MⅤC应用程序后系统会创建样例,图17-10显式的就是 ASPNET MVC默认运行界面,单击旁边的【 About us】连接贞由跳转到相应的吹由,如图17-11所小。+-“这而”工Mly Sample MVC ApplicationLogn.a如My Sample MVC Applicationwu cORE to As尸 NET WwCmr动by比tA即HveD=m"r ERe w poman e C:gnat 70图17-10 ASP. NET MVC应用程序初始界面图17-11Abou页面当单音【 About us】链接后,页面会跳转到关于页面,页面URL为hp/oaho:448/ Home/about在 ASPNET MVC应用程序中,URL路径的请求方式与传统的 ASPNET Web form应用程序不同,开发人员可以发现,在服务器文件中并没有/Hme/ abouvindex.aspx文件也没有/ Hume/Abou这个目录。意:在 ASPNET MYC应用程序中,这里再三强调,其URI并不是服务器中的某个文件而是种地址映射。在服务器中没有/ Home/About/index. aspx文件也没有/ Home/About这个目录,因为/ Home/about中所呈现的页面是通过 Controller控制器和 Globalascx进行相应的文件的路径的映射的,关于地址映射的内438容会在后面的小结中详细讲解。17.3 ASPNET MVC原理运行」 ASPNET MVC应用程序后,就能够通过框应的地址访问不同的贞面。在 ASPNET MYO应用程序中,应用程序中页面的URL并不是在服务器中实际存在的顶面或目录而是访问了相应的方法,ASP NET MVC应用栏序通过 Glubalascx和 Controllers实现了URL映射17.3.1 ASP NET MVO运行流程在运行 ASP NET MVC应用程序后,会发现访问六同的 ASP NET MVC应用程序页面时,其URL路径并不会呈现应的apx后缀。同样当访问相应的ASP, NET MVC应用程序页面,在服务器中并不存在对应的页面。为了了解如何实现顶面映射,就需要了解 ASPNET MⅤC应用程序的运行流程。在 ASPNET MVC程序中,应用程序通过 Global.ascx和 Controllers实现了URL映射。当用户进行ASP.NET MVC程序的页面请求时,该请求首先会会被发送到 Controllers控制器中,开发人员能够在控制器 Controllers中创建框应的变量并将请求发送到Ⅴiews视图中, Views视图会使用在 Controllers控制器中通过编程方式创建框应的变量并呈现页面在浏览器中。当用户在浏览器中对Web应用进行不同的页面请求时,该运行过程将会循环反复。对于 Models而言, Controller通常情况下使用 Models读取数据库。在 Models中, Models能够将传统的关系型数据库射成面向对象的开发模型,开发人员能够使用面向对象的思想进行数据库的数据存取。 Controllers从 Model中读取数据并存储在相应的变量中,如图17-12所示,页面ControllersViewsModelsLing to sQl数据库Linq to XML图17-12 ASPNET MVC运行流程正如图17-12所示,在用户进行页面请求时,首先这个请求会发送到 Controllers中, Controllers从Models中读取相应的数据并填充 Controllers中的变量, Controllers接受相应请攻再将请求发送到 Views中, Views通过获取 Controllers中的变量的值进行整合并生成相应的页面到用户浏览器中。39在 Models中需要将数据库抽象成面向对象中釣一个对象,开发人员能够使用LINQ进行数据库的抽象,这样就能够方佴约将数据厍中的数据抽象成相应的对象并通过对象的方法进行数据的存取和更新1732 ASPNET MVC工作原理正如上一芍中讲解的 ASP NET MVC工作流程,在 ASPNET MVC应用程序中,系统默认创建了相应的文件夹进行不同层次的开发,在 ASPNET MVC应用程序的运行过程中,同样请求会发送到Controllers中,这样就对应了 ASPNET MIⅤC应月程序中的 Controllers文件夹, Controllers只奂责数据的读取和页面逻辑的处理。在 Controllers读取数据时,需要通过 Models中的 LiNQ tO SQL从数据中误取相应的信息,读取数据完毕后, Controllers再将数据和 Controller整合并提交到Ⅴiews视图中,整合后的页面将通过浏览器旱现在用户面前。当用户访问httplocalhost:2448/Hone/About页面时,首先这个请求会发送到Controllers中,Controllers通过 Global.ascx文件中的路由设置进行相应的URL映射, Globalascx文件相应代码如下所小public static vold Register Routes(Route Collection routes∥注册路由routes. Ignore Route(resource. axa/"pathIntoroutes. MapRoute(Defaultcontroller /action idynew controller="Home", action -"Index", id-1〃配置路由上述代码中实现了映射操作,具体是如何实现可以先无需关心,首先需要看看 Controllers文件夹内的文件,以及Ⅴiews文件夹的文件,如图17-13所示。解火万菜资源官题患方"11”!↑月H al Froperties回引用L App_Dataca AccountContrcller.csst Home Con-r oller□固ls国3 critsa Accounta Hems-□ Sharedt]Global.asa高 Web. config解方乘资原管理器服务器突管理温图17-13 Controller文件夹和Ⅴicws文件夹从图17-13中可以看出,在Vew中包含Home文件夹,在Hone文件夹中存在 Aboul. aspx和Index.aspx文件,而同样 Controllers文件夹中包含与Home文件夹同名的 Homecontroller.cs文件。当用疒访问htp! localhost:2448/ Home/about路径时,首先该路径请求会传送到 Controller中注意:在 Controllers文件央中创建 Home controller.cs文件同Hone是同名文件,在 Controllers中创建的文件,其文件名后的 Controller.cs是不能更改的,所以 Home Controller.cs文件也可以看做是Home文件夹的司名文件。在 Controller中, Controller通过 Globalascx文件和相应的编程实现路径的映射,示例代码如下所示。[Handle Error]public class Home controller: Controllerpublic Action Result About()∥实现 About页面ViewData[Title]="About Pagereturn view()∥返回视图上述代码实现了 About页面的页面呈现,在运行相应的方法后会返回一个view,这里默认返回的是与Home的 About方法同名的页面,这甲是 about. aspx, about. aspx页面代码如下所示<% PageLanguage="CHMasterPageFile="/Views/Shared/Site. MasterAuto EventWireup="true"Code Behind="About. aspx cs"Inherits="171.Views. Home. About"%>

About Us

TODO Put sem>aboutsem, content herep>将 about. aspx页面中的文字进行相应的更改,示例代码如下所示。<>About Use h2span style='coor:red">这是一个关于页面p content运行 about. aspx页面,运行后如图17-14所示。Cabout raze- lindens Internet Explorertp. ,localhost: 2448/Heme/About·m·真面·@工具们My Sample MVC ApplicationHDmPAhout llsAbout Us读是一个于云面文均I保护式:用「100%
用户评论