一个初学者对于MVC架构的理解
我很早之前就开始接触.NET开发,一直都在2.0的框架下,所以对于MVC这种架构,听说过,但没有具体使用过,近期和外部朋友接触时,有了解到他们公司在使用MVC这种架构,所以自己就找来相关资料了解一下MVC是什么。
MVC代表着”MODEL”、”VIEW”、”CONTROLLER” 。ASP.NET MVC是一种与传统ASP.NET WEB开发不同的架构。使用MVC开发的WEB应用程序,对搜索引擎更加友好。
使用MVC模式开发,需要Microsoft .NET Framework 3.5以上的框架。
MVC是如何与浏览器进行交互的
和普通的WEB服务器交互一样,MVC程序使用一样的方式接受请求并返回信息给到浏览器。
MVC架构内部
完整的ASP.NET MVC架构是基于Microsoft .NET Framework 3.5,另外还使用LINQ。
MODEL是什么?
1. MVC MODEL基本上就是一个C#或者VB.NET的类。
2. MODEL将同时被CONTROLLER和VIEW访问。
3. MODEL被CONTROLLER用来传输数据给到VIEW层。
4. VIEW层将使用MODEL来在页面上显示数据。
VIEW是什么?
1. VIEW层主要都是一些ASPX页面文件,他们不包括后台代码。
2. 在VIEW层中可以对所有的页面,进行HTML生成和格式化。
3. 可以在VIEW层中使用内联代码,进行动态页面开发。
4. VIEW层中的ASPX页面的请求,只能调用CONTROLLER中的方法。
CONTROLLER是什么?
1. Controller基本上都是一些继承了system.mvc.controller的C#或者VB.NET的类。
2. Controller是整个MVC架构的核心。
3. 在Controller类中的方法都是用来相应浏览器或者VIEW层的请求。
4. Controller将使用MODEL层来向VIEW层的页面传输数据。
5. Controoler使用VIEWDATA来传输任何数据给到VIEW层。
MVC文件结构和文件的命名规范。
MVC程序开发中,使用标准的文件目录结构和文件命名标准是非常重要的。
在程序的根目录,必须要有3个目录,分别是Model, View 和 Controller。
与普通的ASP.NET程序一样,这三个目录之外,根目录下面也必须有一个Global.asax文件和一个Web.Config文件。
Root [directory]
· Controller [directory]
o Controller CS files
· Models [directory]
o Model CS files
· Views [directory]
o View aspx/ascx files
· Global.asax
· Web.config
ASP.NET MVC的运行生命周期
下面是一个MVC架构程序如何执行浏览器的请求。
下面图形所涉及到的每一步执行的说明。
第一步,浏览器请求。
用户在浏览器中,输入一个网址:http://xxx.com/home/index/,这时候就产生一个浏览器请求。
第二步,Global.asax的作用,MVC路由。
这个网址将首先被Global.asax文件中的application_start()方法捕获并解释。从请求的网址中,将解释出控制器,方法,和ID。
所以http://xxx.com/home/index/中,我们将得到:
l 控制器:home
l 方法:index()
l ID:空
第三步,Controller层与调用方法。
现在MVC将在Controller目录下查找home控制器的类。一个控制器类中包含不同的方法。
类中可以包含一个以上的方法,但是MVC只会请求从URL中解释出来的方法,在这里就是index()方法。
调用这个方法后,将返回纯字符串或者将被VIEW层展示的HTML代码。
第四步,调用VIEW层。
调用VIEW将返回view()。调用VIEW层,将会访问view目录下指定的ASPX页面,并且生成将要返回给浏览器的HTML代码。
在这个例子中,控制器是home,方法是index()。所以调用view()将会从/views/home/index.aspx中返回一个HTML代码。
到这里,整个执行流程结束。这就是一个MVC架构如何工作的。
一个初学者对于MVC架构的理解的更多相关文章
- 初学者对于MVC架构模式学习与理解
理解MVC的工作原理,明白一个网页是如何显示出来的 之前一直盲目的在慕课上看视频,脑袋里想着要理解mvc,看了mvc相关的视频,看完之后就觉得空白白的,M,V,C各代表什么我知道,但是这个究竟有啥意思 ...
- MVC架构在Asp.net中的应用和实现
转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能 ...
- MVC架构模式分析与设计(一)---简单的mvc架构
首先 我要感谢慕课网的老师提供视频资料 http://www.imooc.com/learn/69 下面我来进行笔记 我们制作一个简单的mvc架构 制作第一个控制器 testController.cl ...
- 关于三层架构与MVC的一些理解
刚毕业的时候,参与了一个上位机的系统开发.上位机所使用的是.net Windows Form技术. 当时,和一个北理的姑娘在一个项目组里.因为她来公司时间比较长,而且经验比较丰富,所以,上位机的架构由 ...
- Java ---理解MVC架构
之间的文章,我们主要是介绍了jsp的相关语法操作,我们可以通过请求某个jsp页面,然后由相对应的servlet实例给我们返回html页面.但是在实际的项目中,我们很少会直接的请求某个页面,一般都是请求 ...
- MVC架构中的Repository模式 个人理解
关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接 ...
- java MVC架构-spring mvc,struct2(理解)
MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...
- 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC
系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...
随机推荐
- 《javascript高级程序设计》读书笔记1
第二章 在HTML中引用javascript 1.<script>标签的位置:为了避免加载过多的JavaScript的脚本导致浏览器窗口一片空白.现代的web程序一般都把全部的 JavaS ...
- MVVM(Model-View-View-Model)简单分析(及代码示例)
项目组,现在用的MVVM(Model-View-View-Model)模式,搞了一个多月,感觉有点明白了.
- 1 初识Orchard
网上关于Orchard的介绍已经很多了,具体Orchard是干啥的我就不再啰嗦,这个系列的主要目的就是介绍学习和使用orchard的过程,和在此过程中碰到问题的解决方案.下面直接进入正题. 获取orc ...
- xmapp的安装
搭建网站常识性的你首先得搭建一个服务器. 首先APACHE是世界使用排名第一的WEB服务器软件,但是安装APACHE WEB服务器并不容易.如果你想添加MYSQL.PHP和PERL,那就更难了.所以可 ...
- CMD和AMD
CMD是国内玉伯在开发SeaJS的时候提出来的,属于CommonJS的一种规范,此外还有AMD,其对于的框架是RequireJS. 二者的异同之处: 二者都是异步(Asynchronuous Modu ...
- C# 如何使用 svcutil.exe 创建 WCF 客户端代码
工具:svcutil.exe 参数:指定wsdl.输出源码文件.输出配置文件 示例: D:\>svcutil.exe http://localhost:8087/DataService/?wsd ...
- javascript的三个组成部分
javascript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: ECMAScript,由ECMA-262定义,提供核心语言功能; 文档对象模型(DOM),提供访问和操作网页内容的 ...
- PowerDesign设置列名与表名的大小写规则
因为设计的Model是要用到Oracle 11g的,Oracle 11g的表名和列名默认是大写,在设计模型当中小写转大写一直很苦闹,发现PowerDedign可以直接设置,见下文: 打开Tools-- ...
- iOS仿京东分类菜单之UICollectionView内容
在上<iOS仿京东分类菜单实例实现>已经实现了大部分主体的功能,本文是针对右边集合列表进行修改扩展,使它达到分组的效果,本文涉及到的主要是UICollectionView的知识内容,左边列 ...
- iOS打包ipa select a method for export几个选项的意思
他们的意思分别为:Save for iOS App Store Deployment保存到本地 准备上传App Store 或者在越狱的iOS设备上使用,需要提供发布证书 Save for Ad Ho ...