asp.net mvc
最近准备往asp.net方向去学习了,谁让俺们要用两种技术呢,没法子只好多学学,多看看,今天把我自己在做asp.net中的mvc框架时候的一些理解进行小结下。希望对更深层次的理解mvc机制有所帮助。

什么叫mvc我就不说了,做程序的谁都知道。就从页面开始总结起好了,在没有使用mvc构建结构的时候我们做页面很简单只是从工具栏中拖入控件然后再选择对应控件的实践就可以写后台代码了,可以说基本上没有什么技术含量,写来写去也就是控件+事件这样的开发模式,获许你可以说不是还有自定义的组件和用户控件吗?说的对,自定义控件写起来比较麻烦,相信没有多少人会真正从后台去创建前台的控件,原因我就不多说,一个开发效率低,第二个所有的页面元素你得在后台全部定义处理好。并且日后维护起来也不方便。
asp.net中的mvc结构总体可分为五个部分:Conten,Controllers,Models,Scripts,Views.这五个部分共同组成了mvc的基础结构。分的比较细。Conten专门为样式表准备的文件层,Controllers mvc框架中的核心控制层,Models 实体序列化层,Scripts 脚本层,Views,控制器转发的页面层。此层中专门存放不同功能模块经过Controllers 控制器和Global.asax 处理并静态化页面后的呈现页面,其中起着页面伪静态作用的文件是:Global.asax.该文件中配置了一些url隐射规则。
mvc的执行原理是这样的,在页面加载之前程序首先加载完页面基础html标签,在遇到有类似<%=html.encod(viewdata["username"])%>首先会去XXXXController.cs文件中的YYYY方法寻找到相应userName的定义,例如:%=html.encod(viewdata["username"])%>
<%=html.encod(viewdata["username"])%>在HomeController.cs这个文件中的一个方法 About() 返回值为:ActionResult 中定义了一个 ViewData["userName"]=“hgw”;那么在Views层中的Home文件夹下面的About.aspx页面文件中有类似 那么当加载About文件的时候其标题会显示HomeController.cs文件中的About()方法中定义的 ViewData["userName"]=“hgw”; 的值也就是hgw;
同理,通过类似此种定义方式我们还可以定义页面转发路径,以及页面的表单元素,错误信息等,错误信息是基于服务器端的。
通过以上的总结可以得知使用asp.net中的mvc模式的时候它都是通过Controller控制器中的对应方法来控制并显示页面表单元素的,值得注意的是在页面中单击链接的时候并不是真正的asp.net页面,而是执行了Controller控制器中的某个方法,其中Controller控制器的命名规则也需注意,分为两大部分,其中前半部分对应的是Views层中的文件夹名后半部分Controller这个不能改。例如:HomeController.cs 这个控制器代表了Views层下 Home 文件夹下的所有 * .aspx 页面文件。那么Home文件夹下的文件命名有什么猫腻呢?其实细心的人就会发现他们是有猫腻的。例如:文件About.aspx看似是一个很普通的文件,殊不知这个文件是从HomeController.cs控制器的About()方法而来。这个About.aspx文件中的......等等类似的标签文件都是通过HomeController.cs控制器的About()方法中定义的,所以说当使用了asp.net中的mvc框架的时候其核心控制层便可以通过ViewData["title"]="about" 的形式创建页面元素值。从而也可以了解到当执行一个跳转页面的时候其实就是执行了Controller控制器中的某个方法。并且通过 Global.asax 文件进行伪静态化处理之后呈现给我们的是一个没有后缀的页面文件了。
以上总结只是mvc框架中的冰山一角,要想真正掌握mvc框架体系还有待日后的不断学习,总结,思考,实践。以上总结仅仅代表个人观点。写的不是很好,暂且这样吧。
相关阅读:spring mvc spring框架 struts2 asp.net mvc
本文来源 我爱IT技术网 http://www.52ij.com/jishu/495.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

asp.net mvc框架高深啊