【ASP.NET MVC4】第一课:初识ASP.NET MVC,创建第一个ASP.NET MVC项目

知识点:理解ASP.NET MVC、创建一个ASP.NET MVC项目、理解ASP.NET MVC应用程序的结构

 

1、ASP.NET MVC简介

ASP.NET MVC是微软公司在原有的 ASP.NET  框架基础上提出的一个新的 MVC 框架。利用 ASP.NET MVC ,.NET 开发人员可以用 MVC 模式来构建 Web 应用,做到清晰的概念分离(UI 或试图与业务应用逻辑分离,应用逻辑和后端数据分离),同时还可以使用测试驱动开发。

1.1 什么是 MVC 

MVC 不是一种编程语言,严格来说也不是一种技术,而是一种开发架构,一种开发观念,或者说是一种程序设计模式。

MVC(Model-View-Controller ,模型—视图—控制器模式)用于表示一种软件架构模式。它把将软件开发过程大致切割成3个主要单元,分别为模型(Model)、试图(View)和控制器(Controller),简称MVC,其定义如下:

  • 模型(Model):一组类,描述了要处理的数据以及修改和操作数据的业务规则;
  • 视图(View):定义应用程序用户界面的显示方式;
  • 控制器(Controller):一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。

 

1.2   MVC 的优点

ASP.NET MVC框架提供了一个可以代替 ASP.NETWebForm 的基于 MVC 设计模式的应用。

  • 通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合
  • 自由操控HTML:在ASP.Net MVC中已经不使用控件,回归到网页基本元素HTML、CSS和javaScript,因此灵活性大幅增加。
  • 移动设备的支持:ASP.Net MVC4以后的版本针对移动网站增加了许多功能,对于变化更多的移动设备也能有更好的支持。
  • 网页流量降低:ViewState不再存在,并且内建CSS、JS捆绑与最小化机制与各种各样的Helper,可有效的降低数据传输量。
  • 使Web程序对单元测试的支持更加出色。
  • 在团队开发模式下表现更出众。

 

1.2   ASP.NET MVC 的发展历程

 

ASP.NET MVC版本.NET版本Visual Studio版本                              版本简介
1.03.5VS2008核心功能
2.03.5/4.0VS2010分区项目、模型元数据、模板视图、异步控制器等
3.04.0/4.5VS2010/2012支持Razor视图引擎、有丰富的JS支持(比如Jquery)等,灵活性更高了,大量开发者基本抛弃了WebForm转向MVC
4.04.0/4.5VS2012增加了手机、Web Api等模板,增加脚本压缩合并,支持HTML5,增加JS库,对EF的支持等。几乎基于.NET Web项目都进入MVC时代。并进入完全开源时代(MVC之前开放源码,但不支持修改和贡献,4.0是真正意义上的开源)
5.04.5VS2013/VS2015WebApi 2.0、增强路由(Attribute Routing)、进一步增强对JS库的支持,包括新增流行的bootstrap等
6.05.0VS2015整合了MVC、WebAPI、WebPage,彻底移除了WebForm。在View上提供Tag Helpers和View Components,真正意义上的前端DOM和JS分离

名字变动如下:

ASP.NET 5 –> ASP.NET Core 1.0

.NET Core 5 –> .NET Core 1.0

Entity Framework 7 –> Entity Framework Core 1.0

 

1.4  ASP.NET MVC 与 ASP.NET WebForm 的区别

(1)ASP.NET是创建 WEB 应用的框架

(2)MVC 是一种设计模式,可以在不同的开发语言中使用, ASP.NET MVC 是 .NET 平台开发 Web应用的一个框架

(3)原来的ASP.NET称为 ASP.NET WebForm

(4)ASP.NET MVC 不是取代 ASP.NET WebForm ,只是Web表示层的一个框架而已,完全由开发者决定选择哪种开发方式

ASP.NET 开发技术组合(3种):

推荐阅读:【使用ASP.NET开发Web项目】第一课——初识ASP.NET,创建第一个ASP.NET程序

 

asp.net框架

 

2、创建一个ASP.NET MVC项目(Internet 应用程序模板)

ASP.NET MVC 程序开发过程

软件版本:Visual Studio 2012

第一步:打开VS2012软件,点击菜单栏【文件】—【新建】—【新建项目】,在弹出的新建项目窗体中,点击左侧模板 Visua C# 下面的 Web 选项,然后在中间部分,选择 .NET Framework 4 版本,点击选中【ASP.NET MVC 4 Web 应用程序】。名称、位置、解决方案名称,可以选择默认设置,也可以根据需要自行修改。最后点击【确定】按钮。

第二步:在弹出的【新 ASP.NET MVC 4 项目】窗体中,选择模板【Internet 应用程序】,视图引擎暂时使用默认的【Razor】,然后点击【确定】按钮

注意:此时等待系统自动创建即可,如果程序出现以下错误提示,点击【确定】即可。如果要解决此错误提示,解决办法:微软网站下载补丁文件,安装即可http://download.microsoft.com/download/A/0/2/A02C37E0-77F7-448A-BD5C-F66AB1F78DBC/VS11-KB3002339.exe。

第三步:创建完成后的默认效果,我们会看到有一个 HomeController.cs 文件默认打开。

第四步:启动测试,在浏览器中查看效果。点击工具单栏,后面浏览器的名称会根据你自己电脑设置,有所不同。

注意:因为我们是用模板创建的,因此在预览的时候,可以看到这样的效果。

思考,我们可以自己修改这些页面内容吗?

第五步:结束调试。可以直接关闭浏览器,也可以点击工具栏上的红色方块。

第六步:修改页面内容。打开左侧【解决方案资源管理器】,依次点开文件夹【Views】—【Home】—双击文件 Index.cshtml,即可打开该文件。

更改一行代码:(这里是新增加了一行代码)

再次预览效果:

项目分析:6个预安装项目模板介绍

  • 空模板:该模板不包含任何内容,只会创建一个空的 ASP.NET MVC 项目。
  • 基本模板:该模板大部分内容为空,但是项目中仍然包含基本的文件夹、CSS 以及出现错误提示消息,因为还没有设置应用程序启动项。基本模板是为具有 ASP.NET MVC 开发经验的人员设计的,基本模板可以按照他们的想法精确地设置和配置。
  • Internet 应用程序模板:通过该模板可以快速创建一个基本的 ASP.NET MVC 应用程序,程序创建之后可以立即运行,并能看到一些页面。 Internet 应用程序模板分为两个,前一个创建出的项目包含基于 Web Forms 验证机制(ASP.NET Membership)的账户系统,后一个创建出的项目包含 Windows 验证机制。
  • 移动应用程序模板:该模板会创建一个适用于移动设备的 ASP.NET MVC 4 项目,并且包含基于 Web Forms 验证机制(ASP.NET Membership)的账户系统。而且包含了 Jquery Mobile JavaScript 框架以及与 Jquery Mobile 完美兼容的视图模板。
  • Web API 模板:该模板会创建一个ASP.NET Web API 项目。WEB API 是一种新的轻量级的 RESTful HTTP Web服务框架,可以与 ASP.NET MVC 无缝集成 WEB API ,是创建支持 AJAx 交互数据服务的首选,可以非常方便地用于创建这种轻量级服务。

 

3、MVC 模式在 Web 开发中的应用

MVC 模式目前已经广泛地应用于 Web 程序设计中。在 ASP.NET MVC 中,MVC 的3个主要部分有着明确的分工。

模型(Models):也可称作数据模型,负责所有与数据有关的任务:

   ☆定义数据结构;

   ☆负责连接数据库;

   ☆从数据库中读写数据;

   ☆执行存储过程;

   ☆进行数据格式验证;

   ☆定义与验证业务逻辑规则;

   ☆对数据进行加工和处理。

所有与数据有关的任务,都应该在模型里完成或定义。在 ASP.NET MVC Web 应用开发中,我们可以将 Model 想象成一个命名空间(Namespace),它定义了一些类(Class)来负责所有与数据有关的工作,常见的相关技术包括 ADO.NET 、类型化数据集(Type Dataset)、实体数据模型(Entity Framework)、Linq to SQL 、数据访问层(Data Access Layer)和库模式(Repository Pattern)等。

Model并不依赖 View 或 Controller ,也就是说 Model 不需要知道它会如何被显示或如何被应用,只需要专注于做好数据访问、定义、验证的责任即可。

视图(Views):负责所有与用户有关的接口简单来说就是输入与输出。输出工作指将数据显示在用户接口上,如 HTML ,输入工作则是将用户输入的数据传回服务器,具体任务包括:

   ☆从控制器(Controller)处取得数据,并将数据显示在用户接口上;

   ☆负责控制页面的版式、字体、颜色等各种显示方式;

   ☆参考模型(Model)定义的数据格式来定义数据显示方式;

   ☆在 Web 页面中送出数据到服务器;

   ☆决定数据的传递格式和传送方式;

   ☆完成基本的数据验证。

View视图是应用程序的用户界面 (UI) 。

控制器(Controllers):其任务与明朝一样,就是掌控全局,所有与视图和模型无关的逻辑都由控制器定义。它负责的工作如下:

   ☆决定系统运作流程;

   ☆负责从模型(Model)中获取数据;

   ☆决定该显示哪个视图(View)。

Controller控制器是属于一种协调者的角色。

总结:View可以显示数据,Model可以操作数据,但View无法直接与Model沟通,所以View显示的数据需由Controller从Model获取后提供给View。

3.1 创建一个ASP.NET MVC项目(空模板)

第一步:打开VS2012软件,点击菜单栏【文件】—【新建】—【新建项目】,在弹出的新建项目窗体中,点击左侧模板 Visua C# 下面的 Web 选项,然后在中间部分,选择 .NET Framework 4 版本,点击选中【ASP.NET MVC 4 Web 应用程序】。名称、位置、解决方案名称,可以选择默认设置,也可以根据需要自行修改。最后点击【确定】按钮。

第二步:在弹出的【新 ASP.NET MVC 4 项目】窗体中,选择模板【空】,视图引擎暂时使用默认的【Razor】,然后点击【确定】按钮。

第三步:添加一个控制器。在解决方案里,右键单击【Controllers】—【添加】—【控制器】

在弹出的【添加控制器】窗体中,设置控制器名称为“HomeController

添加完成后,会自动生成一个文件,HomeController.cs。

第四步:在解决方案里,右键单击【Views】—【添加】—【新建文件夹】—命名为【Home】。(文件夹的名称和控制器名称一样)

将新添加的文件夹,命名为“Home

第五步:右键单击新添加的文件夹【Home】—【添加】—【视图】

在弹出的【添加视图】窗体中,视图名称修改为“Index”,取消勾选“使用布局或母版页”,然后单击【确定】

添加完成后,会自动生成一个文件,Index.cshtml。

第六步:修改页面内容,这里是添加一行代码,欢迎语

第七步:测试运行

思考一个问题:如果该项目中需要另外一个页面,如何添加?如何设置新添加的页面为默认启动页?

提示:新建一个页面,可以参照3~6的步骤进行。但是此时预览的默认页面仍然是第一个创建的页面,如果要修改默认启动页,则需要修改RouteConfig.cs里的内容。

 

3.2 理解 MVC 的工作原理

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

 

ASP.NET MVC 是一个合理利用“约定优于配置思想”的开发框架。它通过 MVC 设计模式的规则,将开发框架分割成 Model 、View 和 Controller 三个部分,而且明确定义开发人员必须按照特定的约定来开发程序。

  • 控制器类:必须位于项目的 Controllers 目录下,控制器类的名称必须以 Controller 结尾。例如:Home 控制器命名为 HomeController。
  • 视图:必须置于项目的 Views 目录下,Views 目录的第一级目录名称必须与其对应的控制器的名称相同, Views 目录的控制名称目录下的文件名,必须与其对应的 Action 的名称相同。

 

 

运用断点测试,理解 MVC 工作原理

mvc运行原理

第一步:添加断点。双击打开 HomeController.cs 文件,在方法前面添加一个断点。(添加断点的方法:在该行断码左侧,单击一下鼠标左键,会出现一个红色圆点)

第二步:运行测试。单击工具栏,然后点击“逐语句”工具即可查看测试。

 

 

4、ASP.NET MVC项目文件夹和核心文件的解释

在使用 Visual Studio 创建一个新的 ASP.NET MVC 应用程序之后,将自动向这个项目中添加一些目录和文件,如下图所示(此图来自带模板项目)。

ASP.NET MVC 项目默认含有5个顶级目录,每个目录都有特定的分工,如表所示。

        目  录

                                                   用    途

              备   注

Controller

该目录用于放置控制器文件。控制器文件是后缀名为.cs或.vb的类文件

存放程序的核心文件

Models

该目录用于放置数据模型对象的文件,如.cs、.vb、.edmx和.dbml等

Views

该目录用于放置视图(网页/界面)文件,文件后缀名为.cshtml或.aspx

App_Data

该目录是数据的物理存储区,即本地化的数据库文件或数据文件。

 

App_Start

该目录包含多个静态配置类,执行应用程序的初始化任务

 

 

4.1  App_Start 文件

App_Start 文件中包含MVC系统启动的相关类。

  • FilterConfig.cs :过滤器配置,这些过滤器(授权、异常、行为等)可以被应用到每个 Action 和 Controller 中去。(第四课会详细讲解)
  • RouteConfig.cs :配置MVC应用程序的系统路由路径。在 ASP.NET MVC 中通过配置 App_Start 文件夹下的 RouteConfig.cs 设置启动的默认页。
  • WebApiConfig.cs:用于注册Web API配置的各个方面。

效果图演示:通俗理解路由,是用于处理请求的 URL 模式,旅游时有多条线路可以到达目的地,网页可以通过多种URL访问,但是都要在规定范围内,如果超出规则,则无法到达目的地(网页)。如下图所示,我们预览页面时,通过“http://localhost:11402”可以访问,通过“http://localhost:11402/home”也可以访问,通过“http://localhost:11402/home/index”仍然可以访问,但是通过“http://localhost:11402/home-index”却无法访问,提示无法找到资源。

 

4.2  Web.config文件

  • 根目录下面的Web.config文件:作用于整个项目的配置
  • Views下面的Web.config文件:是整个视图的配置文件

 

4.3  Global.asax 文件

Global.asax文件主要在系统启动时做一些全局性的初始化工作,它调用App_Start文件夹中的相关类来完成这些工作。

 

 

 

 

===========这里是结束分割线=============

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值