MVC基础(很基础很基础~~~)

    最近工做比较不忙,准备学习一些东西,做为一个菜鸟,不断学习新东西(我不会的东西)充实本身真的很重要,因此整理一下基础的mvc知识,以备不时之需。呵呵~~web

首先感谢原文做者:QLeelulu的文章http://QLeelulu.cnblogs.com/。下面进入正题服务器

1、什么是MVC模式架构

MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。那么MVC模式和咱们熟悉的WebForm模式有什么不一样呢?他的各个部分又是怎样分工的呢?mvc

imagewebFormasp.net

一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其余),而后由该文件来处理这个请求并返回结果给客户端。学习

imageMVC模式spa

在MVC中,客户端的所请求的URL是被映射到相应的Controller去,而后由Controller来处理业务逻辑,或许要从Model中取数据,而后再由Controller选择合适的View返回给客户端。.net

2、建立MVC项目3d

 vs2010默认是asp.net MVC项目模板,须要下载ASP.NET MVC的安装程序http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&displaylang=en,开始新建项目,这里我选的mvc3,至于mvc2和mvc3有什么区别,但愿知道的大神能给予答案code

而后咱们运行一下项目看看:

image 

3、认识项目

默认的状况下,项目的目录结构以下:

image

  • App_Data :这个目录跟咱们通常的ASP.NET website是同样的,用于存放数据。
  • Content :这个目录是建议用来存放一下资源文件的。例如CSS、JS、图片等等。固然你不肯意的话,彻底能够不放到这里来。
  • Controllers :这个目录是建议将Controller类都放到这里来,方便管理。Controller类的命名必须以Controller结尾,例如一个名为Home的Controller则要命名为HomeController。
  • Models :这个目录是建议用来存放你的业务实体、数据访问层代码的类的。固然,更好的作法我以为应该是将Models独立为一个类库。
  • Views :在默认状况下,全部的view文件都必须放到这个目录下来,每个Controller对应一个子目录,并且子目录的命名必须以Controller的命名同样。例如,HomeController的view就应该放到Home子目录中。咱们见到Views目录下还有一个Shared的子目录,这个子目录是用于存放一些共享的view的,例如Error.aspx和Site.Master。Controller在Views\ControllerNmae 中找不到指定的view的时候,会到Shared中去寻找。

下面咱们来看一下ASP.NET MVC比较核心的DLL,见下图红框部分:

image

System.Web.Routing :URL路由。将一个URL路由到对应的Controller上靠的就是这个。是在HttpModule里面处理的。

System.Web.Extensions :这个是ASP.NET AJAX的。

System.Web.Mvc: ASP.NET MVC最主要的程序集。在CodePlex上放出源代码的就是这个DLL。

System.Web.Abstractions :这个程序集是一些相关的基类来的。例如HttpContextBase、HttpRequestBase 等等。

Microsoft.Web.Mvc :这个程序集只要放一些MVC的特性与扩展的方法。在ASP.NET MVC beta版中,这个DLL已经被移除,可是若是你须要用到这个DLL的功能,能够到这里下载并引入就能够了

咱们彻底能够在VS10中建一个通常的WebAppliction,而后引入这几个DLL,再配置一下web.config文件,那么就能够成为一个ASP.NET MVC的Application了。