ASP.NET MVC模式简介

一、MVC模式简介

MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller)。在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式,尤其适合应用在Web应用程序中。

MVC将应用程序的用户界面分为三个主要部分:

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

1、MVC在Web框架中的应用

MVC模式经常应用于Web程序设计中。在ASP.NET MVC中,MVC三个主要部分的定义大致如下:

  • 模型:模型是描述程序设计人员感兴趣问题域的一些类,这些类通常封装存储在数据库中的数据,以及操作这些数据和执行特定域业务逻辑的代码。在ASP.NET MVC中,模型就像使用了某种工具的数据访问层(Daa Access Layer),这种工具包括实体框架(Entity Framework)或者与包含特定域逻辑的自定义代码组合在一起的其他实体框架。
  • 视图:一个动态生成HTML页面的模板。
  • 控制器:一个协调视图和模型直接关系的特殊类。它响应用户输入,与模型进行对话,并决定呈现哪个视图(如果有的话)。在ASP.NET MVC中,这个类文件通常以后缀名Controller表示。

2、执行顺序

在ASP.NET MVC中的执行顺序可以用下图进行表示,如图所示:

ASP.NET MVC模式简介_第1张图片

其执行顺序可以描述如下:用户在浏览器地址栏里面输入要访问的网址,然后发起请求,控制器接收网页发送的请求,如果需要请求数据,则先从Model里面取出数据交给控制器,然后把数据交给视图,视图负责展现数据。如果不需要请求数据,则直接返回视图呈现给用户。

二、ASP.NET中的MVC

1、ASP.NET MVC和ASP.NET

  • ASP.NET MVC是ASP.NET技术的子集。
  • ASP.NET MVC在ASP.NET核心基础之上构建:

    依赖于HttpHandler,如请求是如何进入控制器的。

    依赖于Session、Cookie、Cache、Application等状态保持机制。

    使用HttpContext、Request、Response、Server等对象。

    在Controller使用智能感知很容易得到这些对象。

  • .NET中编写Web程序的一种可选方式。

2、ASP.NET MVC和WebForms

  • ASP.NET MVC和WebForm都是.NET中开发Web程序的一种方式,两者是一种并列的关系。
  • WebForm的特点:

    所见即所得,开发傻瓜式:服务器端控件、事件模型、状态管理。

    借鉴了Winform的成功特色。

    偏离了Web请求处理的原理(请求->处理->响应)。

  • ASP.NET MVC的特点:关注分离:

    WebForm只是把一个页面分成了前置页面和后置代码,分离的不够彻底。

    MVC可以把一个页面分成Controller、View、Model三部分,分离的更彻底。

    测试性强。可以针对Controller、View、Model单独进行测试。

    更加接近Web请求处理的本质。

三、创建ASP.NET MVC

下面使用Visual Studio2019创建一个ASP.NET MVC项目,其他版本的Visual Studio创建ASP.NET MVC步骤一致。

1、选择文件->新建->项目

如下图所示:

ASP.NET MVC模式简介_第2张图片

2、选择.NET Framework版本的ASP.NET MVC

如下图所示:

ASP.NET MVC模式简介_第3张图片

然后点击“下一步”按钮。

3、配置项目名称和路径

ASP.NET MVC模式简介_第4张图片

最后点击“创建”按钮,然后会弹出创建新的ASP.NET Web应用程序对话框,该对话框列出了所有ASP.NET应用程序共有的一些选项,如下图所示:

ASP.NET MVC模式简介_第5张图片

  • 选择模板。
  • 添加框架特定的文件夹和核心引用。
  • 添加单元测试。
  • 配置身份验证。
  • 添加Docker支持。

选择模板和添加文件夹和核心引用共同起作用。模板选择了一个起点,然后使用框架复选框来添加对WebForms、MVC和Web API的支持。这意味着我们可以选择一个MVC模板,然后添加Web Forms支持,或者可以选择空模板,添加对任意框架的支持。这种功能不只在创建新项目时可以使用:任何时候都可以添加对任意框架的支持,因为框架文件夹和核心引用是通过NuGet包添加的。

3.1、选择一种应用程序模板

下面对这些模板进行介绍:

  • 空(Empty):可以想见,空模板会建立一个空的项目骨架。得到的文件包括一个web.config(包含一些默认的网站配置设置)和创建项目所需的几个程序集引用,但是仅此而已。这个模板不会提供代码,不包含JavaScript或CSS脚本文件,甚至不会提供一个静态的HTML文件。
  • Web Forms:Web Forms模板为ASP.NET Web Forms开发打下基础。
  • MVC:MVC模板设置一个标准的、带几个视图的HomeController,配置站点布局,并包含一个MVC特定的HTML页面。
  • Web API:使用此模板创建的应用程序同时支持MVC和Web API。包含MVC支持,部分是为了显示API Help页面,它们记录了公有API签名。
  • 单页应用程序(Single Page Application):单页应用程序模板创建的应用程序主要通过JavaScript请求Web API服务驱动,而不是采用传统的Web页面请求/响应周期。

3.2、测试

所有的内置项目模板都有一个选项,用来使用样本单元测试创建单元测试项目。

推荐选中“创建一个单元测试项目”复选框

3.3、配置身份验证

单击“更改”按钮,可以打开更改身份验证对话框,从中可以选择身份验证方法,如下图所示:

ASP.NET MVC模式简介_第6张图片

对话框中列出了4个选项:

  • 不进行身份验证:用于不需要身份验证的应用程序,例如没有管理单元的公共网站。
  • 个人用户账户:用于在本地存储用户配置文件(如在SQL Server数据库中存储)的应用程序。支持用户名/密码账号,以及社交认证提供程序。
  • 工作或学校账户:用于通过某种形式的活动目录(包括Azure Active Directory和Office365)进行身份验证的账户。
  • Windows身份验证:用于内部网应用程序。

最后点击“创建”按钮,完成ASP.NET MVC应用程序的创建:

ASP.NET MVC模式简介_第7张图片

到此这篇关于ASP.NET MVC模式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(ASP.NET MVC模式简介)