资源描述:
《MVC框架基础知识学习.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MVC框架MVC全名是ModelViewController,是模型(model)—视图(view)—控制器(controller)的缩写,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形。C存在式的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型模型表示企业数据和业务规则。在MVC的三个部件屮,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusionComponents这样的构件墮象来处理数据库,被模型返冋的数据是屮立的,就是说模型与数据格式无关,这样
2、一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。视图视图是用户看到并与Z交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界血,在新式的Web应用稈序屮,HTML依I口在视图屮扮演着重要的角色,但一些新的技术已层岀不穷,它们包括AdobeFlash和像XHTML,XML/XSL,WML等一些标识语言和Webservices.MVC好处是它能为应用程序处理很多不同的逊图。在视图屮其实没有真正的处理发生,不管这些数据是联机存储的还是一
3、个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。控制器控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页血屮的超链接和发送HTML表单时,控制器木身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然示再确定用哪个视图来显示返冋的数据。Mvc控件在ASP.NETMVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代。还好在asp.netmvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类。另外在Mvc
4、Contrib扩展项Fl屮也有扩展一些帮助类,这样我们就不光只能使用完整的html来编写了需要显示的页面了,就可以使用这些帮助类来完成,但最后运行时都还是要生成html代码的。HtmlHelper类HtmlHelper类位于System.Web.MVC.Html命名空间下。主要包括FormExtensions,TnputExtensions,LinkExtensions,SelectExtensions,TextAreaExtensions,ValidationExtensions,RenderParti
5、alExtensions等7个静态类,他们全部是是采用拓展方法来实现的。TnputExtensions类:主要有5种类型的扩展方法,分别用于CheckBox控件、Hidden控件、Pass控件、RadionButton控件和TextBox控件LinkExtensions类:该类主要用于牛成相关链接,主要扩展了ActionLink和RouteLink方法。ActionLink:扩展方法主要实现一个连接,共有十个重载方法。UrlHelper帮助类看类名也都知道这个类是用来成URL在ASP.NETMVC应用程序
6、屮。UrlHelper提供了四个非常常用的四个方法。1.Action方法通过提供Controller,Action和各种参数生成一个URL,2.Content方法是将一个虚拟的,相对的路径转换到应用程序的绝对路径,3.Encode方法是对URL地址进行加密,与Server.Encode方法一^样。4.RouteUrl方法是提供在当前应用程序屮规定的路由规则屮匹配出URL。另外还有两个属性,分别是RequestContext和RouteCollection两个属性,分别指的是包含HTTP上下文和RouteD
7、ata两个属性,另外,RouteCollection是整个当前应用程序屮规定的路由规则。自定义控件微软提供的HtmlHelper己经是足够大部分开发人员使用了,但是有一些功能要用微软提供的HtmlHelpernJ能还不满足要求。接下来就谈谈如何自定义的过程。首先自定义的方法就是对HtmlHelper对象的扩展。扩展方法实现的三要素:1、静态类2、静态方法3、this关键字1、先定义一个类,例如:MyHtmlHelper:usingSystem;usingSystem.Collections.Generic
8、;usingSystem.Linq;usingSystem.Web;namespaceMvcApplicationFirstDome・Models{//静态类publicstaticclassMyHtmlHelper{//静态方法}}2、假设要扩展的方式是GetSpan,作用就是当你传入参数吋,内部封装了之后返冋结果,代码如下。注意在MyHtmlHelper类匚
9、」要引用usingSystem.Web.Mvc命名空间。//静态