今天是第一天学习,主要总结了下面两个问题。由于是自学,总结的可能会有纰漏希望大家积极指正(微笑)。
1、什么是Mvc?为什么要用Mvc?
2、如何使用Mvc快速实现入门级别的开发?
这里先说一下什么是Mvc:首先Mvc是一种架构模式;第二Mvc不等同于三层;第三Asp.net Mvc是延用了Mvc思想做出来的一款基于三层中的UI层的一款产品;那么Mvc架构模式是什么意思呢?当然这个架构模式20世纪80年代就已经提出来了。当时的提出的时候并没有标准的输入输出设备,只是为了单纯的区分开来输入、输出和逻辑处理。就把开发分成了3个部分,可以让开发人员专注与逻辑处理方面。下面上图是传智播客赵小虎上课时讲的
M---->Mode(模型)l
V----->View(视图)
C----->Controller(控制器)
。
随着硬件的发展,有了标准的输入输出设备之后,左边的这种架构模型已经不再使用,但是很多公司却延用了这种模式所提出来的的思想——分工开发,这样可以更好的调度分配开发工作。这种思想在现在开发过程中的体现就是三层开发——UI层、业务逻辑层、数据访问层(三层之间需要参数传递时就需要用到模型)。大家对三层应该都比较熟悉就不再赘述。Asp.Net Mvc其实就是对三层当中的UI层进行进一步的分离做出来的一个框架,即是一个UI层的框架。把UI层分为输入、处理、渲染返回(里面牵涉到的数据放到Model里)。请求过来接收输入的这个东西就叫Controller(控制器),控制器里边有一些实际执行相应处理的东西叫Action(行为),行为的本质就是方法,这些行为就会调用底层的处理,处理完之后它再结合一些模型数据的封装,最终将这些数据交给View(视图),最终由View完成渲染展示返回给浏览器。Razor渲染引擎,它的强大之处就在于可以直接通过显卡调度完成渲染。
注意:上面讲到的Model和模型层中的模型不是一个意思,但是实际开发过程中我们有时候会直接调用三层中的模型层,而不自己写Model,但是这个Model是有意义的,很多时候我们会做强类型的页面,这个时候我们自己写的Model就有意义了。这里的模型层中的模型对应的是数据库中的一些表,比如顾客表和订单表,要在页面显示顾客名称和订单名称时就没有模型既包含顾客又包含订单,这个时候我们就需要在Model中重新定义一个类既包含顾客又包含订单,简单的说Mvc中的Model是展示Model,而三层中的模型是数据Model和数据库中的表一一对应。萝莉啰嗦的说了这么多,Mvc就介绍到这里吧。下面进行第二个问题。至于为什么用Mvc就非常显而易见了,实现前台和后台最大限度的解耦。也方便开发人员的任务分配。
创建第一个Mvc项目
由于方法比较简单,这里就不上图了,只做简单文字介绍
(1)选择File|New Project选项
(2)在New Project对话框左栏的Installed|Templates部分,选择C#|Web模板列表,右边选择Asp.Net Mvc4 Web Application,给程序命名为MvcMusicStore(官网示例代码)然后单击Ok按钮。
(3)接下来就会有一个Select a template 对话框让你选择一个项目模板。
Internet Application模板:包含Asp.NET MVC Web应用程序的启动方式,程序创建之后便可立即运行,并能看到一些页面。还包含一些针对ASP.NET Membership系统的基本账户管理功能。
Intranet Application模板:改模板是作为ASP.NET MVC 3工具更新的一部分添加的,它与Internet Application模板相似,但是它的账户管理功能不是针对Asp.net Membership系统而是针对Windows账户
Basic模板:该模板非常小,其中除了包含基本的文件夹、CSS和MVC应用程序基础结构之外,别无其他。如果运行使用Empty模板创建的应用程序,将会出现错误提示——您需要设置启动项。既然这样为什么还要用Empty模板呢?其实Basic模板市委具有Asp.net MVC开发经验的人员设计的。它可以按照他们的想法精确的设置和配置程序。
Empty模板:Basic模板过去称为Empty模板,但是开发人员抱怨Empty模板不够空。在MVC4中,先钱的Empty模板更名为Basic,新的Empty模板很空,里面只有必须的程序集和基本的目录结构。
Mobile Application模板:该模板使用jQuery Mobile进行预配置,这样就启动创建一个只能仅移动访问的网站。该模板中包括移动视觉主题、触摸优化的UI、还支持Ajax。
Web API模板:ASP.NET API是一个创建HTTP服务的框架,该模板和Intern Application模板相似,但他简化为Web API开发。没有用户账户管理功能。
对于初学者,建议选用Internet Application模板 视图引擎选择Razor引擎,勾选选择一个单元测试前面的复选框。其它的可以默认,点击OK
到此,就已经创建好了一个MVC项目
(5)下面单击Controller文件夹单击右键添加控制器(控制器其实就是一个类,区分类和控制器的方法就是看他是否继承System.MVC.Controller)如图所示,单击确定。
(6)然后给控制器里的行为添加视图,如下图所示,选中Index行为,单击右键添加视图
默认情况下视图名称和行为名称相同,这里我们先不选视图和模板,如图所示点击添加,就添加了一个可以放html页面的一个.cshtml文件。通过控制器/行为的方式 来访问页面,也可以自己配置视图页面。自己配置页面的话可以给行为加参数如下图所示,再返回的View中加入想要返回的视图名称,在浏览器中输入:端口号/控制器名/Index1就可以访问Index1这个视图页面
给Index1添加视图的方式一样这里就不再赘述。视图里可以写你想显示的东西
简单的代码介绍就介绍到这里,至于页面的访问方式是由路由决定的,mvc3路由的配置在global文件里配置,MVC4放在了一个路由配置类(RouteConfig),在Global文件里完成调用,后边详细介绍。