ASP.NET MVC 入门1、简介
来源:互联网 发布:程序员的数学 概率统计 编辑:程序博客网 时间:2024/06/17 01:07
ASP.NET MVC 入门1、简介
什么是MVC模式
MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。
那么MVC模式和我们熟悉的WebForm模式有什么不同呢?他的各个部分又是怎样分工的呢?
我们先来看一下普通的WebForm模式下,我们请求一个例如http://www.51mvc.com/blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了),然后再由index.aspx页面来呈现给用户。简单的示意图如下所示:
也就是一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。
但是,对于MVC模式,这是怎样的一个过程呢?
我们先来建一个ASP.NET MVC的项目吧。VS2008默认是没有ASP.NET MVC的项目模板的,首先我们需要到http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&displaylang=en去下载最新的ASP.NET MVC的安装程序,目前最新版本的Microsoft ASP.NET MVC Beta(10/15/2008)。下载安装完后,我们可以在新建项目那里找到ASP.NET MVC的项目:
注:如果你的是中文版的VS,安装完后可能会出现找不到这个模板的现象,你可以参考在中文版VS 08中安装MVC这篇文章设置一下。
建立一个ASP.NET MVC项目后,默认的项目大概如下图:
我们可以看到项目中有几个文件夹的命名和MVC(Model-View-Controller,模型—视图—控制器模式)是对应的。然后我们运行一下项目看看:
我们注意到地址栏的URL是 Home/Index,如果按照我们前面说的WebForm的模式的话,我们应该可以在我们的项目的根目录下找到Home目录,然后Home目录下有个Index的文件,但是我们并不能在根目录下找到Home这个目录。不过还是让我们在Views目录下找到了Views/Home/Index.aspx文件,我们输入这个地址运行看看:
Oh,No!路径是对的,文件也存在,但为什么会是404,说找不到文件呢?如果不是直接访问存在的物理文件,那么MVC又是怎样工作的呢?
原来啊,MVC模式的工作过程是这样的:
在MVC中,客户端的所请求的URL是被映射到相应的Controller去,然后由Controller来处理业务逻辑,或许要从Model中取数据,然后再由Controller选择合适的View返回给客户端。再说回前面我们运行的ASP.NET MVC程序访问的http://localhost:2176/Home/Index这个URL,它访问的其实是HomeController中的Index这个Action,见下图:
其中public ActionResult Index()这个方法称为Controller的Action,他返回的是ActionResult的类型。一个Controller可以有很多个Action。
那么一个URL是怎样被定位到Controller中来的呢?我们先来看一下web.config文件,在web.config文件的httpModules配置节中,我们可以看到一个UrlRoutingModule:
待续。。。
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门 -- 1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1 简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1、简介
- ASP.NET MVC 入门1:简介
- ASP.NET MVC 入门1、简介
- 把二元查找树转变成排序的双向链表
- Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB
- 数据结构之查找算法总结
- C++ 库汇总
- OLe复合文档介绍
- ASP.NET MVC 入门1、简介
- 个人阅读的Deep Learning方向的paper整理
- Android ListView的OnItemClickListener详解
- javaweb之Session URL重写
- 【啊哈!算法】算法4:队列——解密QQ号
- 开始
- GridView 常用属性
- System.out.println和System.err.println
- Spring mvc 深入浅出转载