《MVC框架在LLN中的应用.ppt》由会员分享,可在线阅读,更多相关《MVC框架在LLN中的应用.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MVC框架在LLN中的应用 黄建堡课程安排MVC基础知识介绍MVC与三层应用举例MVC在新LLN中的应用扩展知识 WebForm请求模型MVC请求模型Web Forms Vs MVCWebForm 优点 1、支持事件模型开发。得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用 2、使用方便,入门容易 3、控件丰富WebFrom 缺点 1、封装太强,很多底层东西让我们初学者不是很明白 2、入门容易,提升很难 3、复杂的生命周期模型学习起来并不容易 4、控制不灵活 5、ViewState处理Web Forms Vs MVCMVC优点1.很容易将复杂的应用分成M、V、C三个组件模型
2、通过model、view和controller有效的简化了复杂的架构,体现了很好的隔离原则2.因为没有使用server-based forms。所以我们程序员控制的更加灵活,页面加干净3.可以控制生成自定义的url。对于seo友好的url更是不在话下4.强类型View实现,更安全、更可靠、更高效。5.让web开发可以专注于某一层。更利于分工配合适用于大型架构开发Asp.Net MVC 简介Asp.Net MVC 模式是一种表现模式。它将web应用程序分成三个主要组件即:Model、View、ControllerModel:主要是存储数据的模型和对数据库操作View:是用户接口层组件。主要是将M
3、odel中的数据展示给用户Controller:处理用户交互,从model中获取数据并将数据传给指定的view约定大于配置Controller放到Controllers文件夹中,并且命名方式以XxController结尾每个Controller都对应Views文件夹中的一个文件夹,文件夹的名称跟Controller名相同Controller中的方法名都对应一个View(非必须)而且View的名字跟Action的名字相同MVC组件之间的关系l View和Controller都可以直接请求Model,但是Model不依赖View和controllerl Controller可以直接请求View来显
4、示具体页面,View不依赖Controllerl 其实:View可以通过另外的方式来请求Controller开发流程新建Controller创建Action根据Action创建View在Action获取数据并生产ActionResult传递给View。View是显示数据的模板 url请求Controller.Action处理View响应Routing在项目中我们引用了System.Web.Routing微软将此项目单独出来,并没有开源代码Routing的作用:确定Controller确定Action确定其他参数根据识别出来的数据,将请求传递给Controller和Action.RoutingM
5、VC项目是URL请求驱动为什么访问localhost/home/index会传递给 HomeController中名为index的action(即HomeController类中的index方法)?怎么实现的呢?RoutingGlobal.asax.cs文件中定义了路由的识别规则 Routes.MapRoute(Default,/路由名称路由名称 controller/action/id,/带有参数的有参数的URL new controller=Home,action=Index,id=UrlParameter.Optional /参数默参数默认值 );我们的Url:localhost/hom
6、e/indexlocalhost是域名,所以首先要去掉域名部分:home/index对应了上面代码中的这种URL结构:controller/action/id因为我们建立了这种Url结构的识别规则,所以能够识别出 Controller是home,action是index,id没有则为默认值.Routing路由规则1.Routing规则有顺序,如果一个url匹配了多个Routing规则,则按照第一个匹配的Routing规则执行.2.*values 表示后面可以使任意的格式.RoutingUrl路由实例routes.MapRoute(酒店列表页,hotels/list-city-price-sta
7、r,new controller=Hotel,action=list,city=beijing,price=-1,-1,star=-1,new city=a-zA-Z*,price=(d)+,(d)+,star=1-5);实现功能:访问 http:/localhost/hotels/list-beijing-100,200-3 会访问酒店频道的列表页,并传入查询参数。ActionResultActionResult派生类:类名类名抽象类抽象类父类父类功能功能ContentResult根据内容的类型和编码,数据内容.EmptyResult空方法.FileResultabstract写入文件内容,
8、具体的写入方式在派生类中.FileContentResultFileResult通过 文件byte 写入文件.FilePathResultFileResult通过 文件路径 写入文件.FileStreamResultFileResult通过 文件Stream 写入文件.HttpUnauthorizedResult抛出401错误JavaScriptResult返回javascript文件JsonResult返回Json格式的数据RedirectResult使用Response.Redirect重定向页面RedirectToRouteResult根据Route规则重定向页面ViewResultBa
9、seabstract调用IView.Render()PartialViewResultViewResultBase调用父类ViewResultBase 的ExecuteResult方法.重写了父类的FindView方法.寻找用户控件.ascx文件ViewResultViewResultBase调用父类ViewResultBase 的ExecuteResult方法.重写了父类的FindView方法.寻找页面.aspx文件MVC!=三层架构MVC是表现模式三层是架构模式表示层表示层业务逻辑层数据库接口层ViewControllerModelLLN WebSites 程序框架UI表示层Asp.Net
10、 MVC 4.0+JQuery业务逻辑层BLL底层通用函数库(Utility)BLL对外APIWebServiceDatabase WebService访问代理类扩展方法(Providers)Model基类LLN WebSites 程序框架LLN解决方案Razor添加服务器端代码:或者 防止XSS攻击:自动HTML Encod自动识别成Email格式而不是Razor的关键字即使是像“hello world”这样微不足道的例子就为我们节省了12次键盘敲击。而且在键盘上”字符比”%”字符更容易按。Razor识别内嵌的内容自动识别里的HTML代码,省敲15个字符,而且更容易阅读!使用“代码”标注多行语句Razor母版页Views/Layouts文件夹RazorHtmlHelperViewsHelpers文件夹Razor内联模板MVC总结注意理解M(_)V(_)C(_)理解MVC与三层架构的区别熟练掌握Url路由注册与设计熟练掌握View层的显示方法及强类型掌握Controller中Action返回值的类型扩展ORM框架(Object/Relation Mapping)扩展EF框架与LINQ